基于循环链表的约瑟夫环实现
来源:互联网 发布:好看的日剧知乎 编辑:程序博客网 时间:2024/05/17 05:00
//头文件一:Ring.h#if !define(RING_H)#define RING_H#include <iostream>#include <fstream>using namespace std;//结构personstruct person{int code;char name[10];person *next;};//类Ringclass Ring{private:person *pBegin;person *pCurrent;person *pTmp;public:Ring (int n);void Countx(int m);void Display();void Dispx();void Clsx();~Ring();};//类JOSEclass Jose{private:int number;int interval;public:Jose (int=0,int=0);int GetNum();void Initial();void Find();};#endif
//头文件二:Jose.h//构造函数Jose::Jose(int n,int m):number (n),interval (m){}//初始化参加人数和间隔void Jose::Initial(){cout<<"输入参加游戏的人:";cin>>number;cout<<"输入间隔数:";cin>>interval;getchar();}//求解函数void Jose::Find(){Ring psn(number);//构造游戏对象cout<<"游戏结果如下:"<<endl;for (int i=0;i<number;i++)//循环求解{psn.Countx(interval);//计数间隔psn.Dispx();//输出出圈者psn.Clsx();//摘除出圈者}}//返回参加游戏人数int Jose::GetNum(){return number;}
//Ring.cpp#include "Ring.h"//构造函数Ring::Ring(int n){char s[10];pBegin=new person[n];//申请动态内存pCurrent=pBegin;//建立循环链表for (int i=1;i<=n;i++,pCurrent=pCurrent->next){pCurrent->next=pBegin+i%n;//将结点链接起来pCurrent->code=i;cout<<"输入第"<<i<<"个人的名字:";gets(s);strcpy(pCurrent->name,s);//游戏者的名字}pCurrent=&pBegin[n-1];//当前游戏者在最后一个编号}//计数间隔函数void Ring::Countx(int m){for (int i=0;i<m;i++){pTmp=pCurrent;pCurrent=pTmp->next;}}//显示当前出圈者函数void Ring::Dispx(){cout<<pCurrent->code<<""<<pCurrent->name<<endl;}//显示全部参加游戏者的函数void Ring::Display(){person *p=pCurrent;do {Dispx();pCurrent=pCurrent->next;}while(p!=pCurrent);}//将出圈者从循环链表中删除void Ring::Clsx(){//删除操作pTmp->next=pCurrent->next;pCurrent=pTmp;}<pre name="code" class="cpp">//main.cpp#include "Ring.h"#include "Jose.h"//主函数int main(){Jose game;//创建游戏对象game.Initial();//调用菜单处理函数,供用户选择game.Find();return 0;}
//析构函数,释放动态数组空间Ring::~Ring(){delete []pBegin;}
0 0
- 基于循环链表的约瑟夫环实现
- 约瑟夫环的循环链表实现
- 基于循环链表的约瑟夫问题
- josephus 约瑟夫的循环链表实现
- 数据结构-约瑟夫环的简单实现(循环链表)
- 数据结构实验 约瑟夫环的循环链表实现
- 循环链表实现约瑟夫环
- 循环链表实现约瑟夫环
- 循环链表实现 约瑟夫环
- 循环链表实现约瑟夫环
- Java循环链表实现约瑟夫环
- 循环链表 约瑟夫环问题实现
- 循环链表实现约瑟夫环
- 循环链表实现约瑟夫环
- 约瑟夫环问题循环链表实现
- 约瑟夫环之循环链表实现
- 约瑟夫环循环链表实现
- 循环链表实现约瑟夫环
- iOS上使用自定义ttf字体
- 联诚发(LCF):航空领域同LED广告的亲密接触
- 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
- 动态加载apk的坑
- .htaccess的基本作用及相关语法介绍
- 基于循环链表的约瑟夫环实现
- 学习C#和SQL的书籍
- 这是我的第一篇博客
- 基于Erlang高并发测试之客户端准备
- 欢迎使用CSDN-markdown编辑器
- Android的界面设计规范
- (四)Canvas API方法和属性汇总
- MySQL更改数据库文件的目录
- request.getRealPath()方法