没有合适的资源?快使用搜索试试~ 我知道了~
多种方法解决约瑟夫环问题,1.顺序表2.循环链表3.循环队列4.普通一位数组
资源推荐
资源详情
资源评论
////////////////////////////置标志////////////////////////////////
#include <iostream>
using namespace std;
void Jesephu_1( int n ,int m)
{
int *S=new int[n];
for(int i=0;i<n;i++) //初始化数组A
S[i]=i+1;
int k=0; //k表示出列的人数
int p=-1; //p标志每个元素在一趟循环中的下标
while(1)
{
for(int i=0;i<m;) //i=0表示从第一个元素开始报数,直到指定的出列数字
{
p++;
if(p==n)
p=0; //p从下标为0的元素开始,
if(S[p]!=0) //如果该元素不为零,起始位置i向后移一位
i++;
}
if(k==n) //如果出列人数等于总人数,跳出循环
break;
cout<<S[p]<<" "; //输出出列的元素,并标志为0;
S[p]=0;
k++;
}
}
int main()
{
#include <iostream>
using namespace std;
void Jesephu_1( int n ,int m)
{
int *S=new int[n];
for(int i=0;i<n;i++) //初始化数组A
S[i]=i+1;
int k=0; //k表示出列的人数
int p=-1; //p标志每个元素在一趟循环中的下标
while(1)
{
for(int i=0;i<m;) //i=0表示从第一个元素开始报数,直到指定的出列数字
{
p++;
if(p==n)
p=0; //p从下标为0的元素开始,
if(S[p]!=0) //如果该元素不为零,起始位置i向后移一位
i++;
}
if(k==n) //如果出列人数等于总人数,跳出循环
break;
cout<<S[p]<<" "; //输出出列的元素,并标志为0;
S[p]=0;
k++;
}
}
int main()
{
int n,m;
cout<<"请输入总人数:";
cin>>n;
cout<<"请输入要出列所报数字:";
cin>>m;
Jesephu_1(n,m);
return 0;
}
/////////////////////////顺序表///////////////////////////////
#include<iostream>
using namespace std;
template<class T>
class SqList //顺序表的模板类
{
public:
SqList(int n=0);
~SqList();
void Creat(int n); //新建表
int Length(){return len;} //获取表长
void Insert(T &e,int); //插入元素
void Delete(T &e,int); //删除元素
T *data; //存放元素的数组
private:
int len; //表的实际长度
int size; //表的最大长度
};
template<class T>
SqList<T>::SqList(int n) //初始化顺序表
cout<<"请输入总人数:";
cin>>n;
cout<<"请输入要出列所报数字:";
cin>>m;
Jesephu_1(n,m);
return 0;
}
/////////////////////////顺序表///////////////////////////////
#include<iostream>
using namespace std;
template<class T>
class SqList //顺序表的模板类
{
public:
SqList(int n=0);
~SqList();
void Creat(int n); //新建表
int Length(){return len;} //获取表长
void Insert(T &e,int); //插入元素
void Delete(T &e,int); //删除元素
T *data; //存放元素的数组
private:
int len; //表的实际长度
int size; //表的最大长度
};
template<class T>
SqList<T>::SqList(int n) //初始化顺序表
剩余11页未读,继续阅读
资源评论
零当当
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功