//.h

 #pragma once
#include <iostream>
using namespace std;
#define MAXSIZE 100 template <class T>
class SeqList
{
  T data[MAXSIZE];
  int length;
public:
  SeqList();
  SeqList(T a[],int n);
  ~SeqList();
  void Josephus2(int p[], int m0);
  void PrintList();
}; template <class T>
SeqList<T>::SeqList()
{
  length = ;
} template<class T>
SeqList<T>::SeqList(T a[], int n)
{
  length = n;
  for (int i = ; i < length; i++)
    data[i] = a[i];
} template <class T>
SeqList<T>::~SeqList()
{
} template<class T>
void SeqList<T>::Josephus2(int p[], int m0)
{
  int k = ;
  int m = m0;
  cout << " 出圈顺序为:" << endl;
  while (length != )
  {
    k--;
    int i = (k + m - ) % length;
    cout << data[i] << " ";
    m = p[i];
    for (int j = i; j < length - ; j++)
    {
      data[j] = data[j + ];
      p[j] = p[j + ];
    }
    length--;
    k = i + ;
  }
  cout << endl;
} template<class T>
void SeqList<T>::PrintList()
{
  for (int i = ; i < length; i++)
  cout << data[i] << " ";
  cout << endl;
} // 约瑟夫问题 密码不同.cpp : 定义控制台应用程序的入口点。
//主函数 #include "stdafx.h"
#include "SeqList.h"
#include <iostream>
using namespace std; int main()
{
  int a[] = { ,,,,, };
  int b[] = { ,,,,, };   SeqList<int> s(a,);
  s.PrintList();
  s.Josephus2(b,);   system("PAUSE");
  return ;
}

题目:约瑟夫环问题的一种描述是:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人手持一个密码(正整数)。一开始任选一个整数作为报数上限值,从第一人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将它的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去直到所有人全部出列为止。试设计程序实现之。

C++:顺序表类实现约瑟夫问题_密码不同的更多相关文章

  1. 线性表的顺序存储结构之顺序表类的实现_Java

    在上一篇博文——线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构——顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放 ...

  2. 数据结构实验1:C++实现静态顺序表类

    写了3个多小时,还是太慢了.太菜了! 图1 程序运行演示截图1 实验1 1.1 实验目的 熟练掌握线性表的顺序存储结构. 熟练掌握顺序表的有关算法设计. 根据具体问题的需要,设计出合理的表示数据的顺序 ...

  3. 数据结构Java实现02----线性表与顺序表

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. 线性表源码分享(c++),包含顺序表、单链表、循环链表、双向链表

    ---恢复内容开始--- 我是一个c++和数据结构的初学者,本文主要是把清华大学出版社的数据结构(用面向对象方法与c++语言描述)(第2版)这本书中第二章线性表的源码抄下来,在学习的过程中有助于加深印 ...

  5. 数据结构顺序表删除所有特定元素x

    顺序表类定义: template<class T> class SeqList : { public: SeqList(int mSize); ~SeqList() { delete[] ...

  6. "《算法导论》之‘线性表’":基于静态分配的数组的顺序表

    首先,我们来搞明白几个概念吧(参考自网站数据结构及百度百科). 线性表 线性表是最基本.最简单.也是最常用的一种数据结构.线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外, ...

  7. 数据结构Java实现01----线性表与顺序表

    一.线性结构: 如果一个数据元素序列满足: (1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素: (2)第一个数据元素没有前驱数据元素: (3)最后一个数据元素没有 ...

  8. 数据结构顺序表Java实现

    Java实现顺序表算法:1:首先我们需要定义我们的接口,关于顺序表的一些基本的操作:顺序表中的操作都有增删改查. //List接口 public interface IList { //返回线性表的大 ...

  9. [数据结构 - 第3章] 线性表之顺序表(C++实现)

    一.类定义 顺序表类的定义如下: #ifndef SEQLIST_H #define SEQLIST_H typedef int ElemType; /* "ElemType类型根据实际情况 ...

随机推荐

  1. a=(1,)b=(1),c=(“1”) 分别是什么类型的数据

    (1,)– tuple; (“1”) – str; (1) – int; >>> (2,)(2,)>>> (2)2>>> ("6&quo ...

  2. Scrapy 教程(11)-API启动爬虫

    scarpy 不仅提供了 scrapy crawl spider 命令来启动爬虫,还提供了一种利用 API 编写脚本 来启动爬虫的方法. scrapy 基于 twisted 异步网络库构建的,因此需要 ...

  3. C语言应用--数据类型定制一定义和引用

    目前,定制正在变的越来越普遍,定制服务.定制衣服.甚至使用的键盘都是定制了.在C语言中虽然也包括了整型.字符型和浮点型等基本类型,也有基本的组合数据类型数组.但是这些类型都是针对某一种特定类型时应用没 ...

  4. A·F·O小记

    看过很多的游记,也看过很多的退役记.回忆录,而当自己真正去面对的那一刻,却又不知道从何说起,也不知道能用怎样的形式和语言,才能把这段珍贵的记忆封存起来,留作青春里的一颗璀璨明珠…… 还是随便写写吧…… ...

  5. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  6. activemq jmx

    增加: -Djava.rmi.server.hostname=<IP addr>

  7. Flutter移动电商实战 --(51)购物车_Provide中添加商品

    新加provide的cart.dart页面 引入三个文件.开始写provide类.provide需要用with 进行混入 从prefs里面获取到数据,判断有没有数据,如果有数据就返转正List< ...

  8. Ionic4.x 内置颜色

    primary/secondary/tertiary /success/warning/danger/dark/medium/light

  9. django模型多对多调用

    对于如下的模型: from django.db import models # Create your models here. class Student(models.Model): name = ...

  10. HTML5 地理位置定位API(4)

    地理定位(geolocation)是最令人兴奋,而且得到了广泛支持的一个新API.通过这套API, JavaScript代码能够访问到用户的 当前位置信息.当然,访问之前必须得到用户的明确许可,即同意 ...