C++单链表求解约瑟夫环
来源:互联网 发布:华为 移动数据变灰 编辑:程序博客网 时间:2024/05/17 20:25
#include<iostream>using namespace std;struct LinkNode //链表结点类{ LinkNode(int cdate):date(cdate){} //构造函数 int date; LinkNode * link;};class CircList{private: LinkNode *first; //链表头指针 int n; //总人数 int m; //报数间隔 int s;//起始位置public: CircList(int cn,int cm,int cs):n(cn),m(cm),s(cs) //构造函数 { CreateList(); OutputList(); } void CreateList(); void OutputList(); LinkNode *Locate(int i) //寻找第i个元素,并返回地址 { LinkNode *current=first; int k=1; while(k<i) { current=current->link;k++; } return current; };};void CircList::CreateList() //创建链表并对数据项进行赋值{ LinkNode *cur=NULL; LinkNode *p=first=new LinkNode(1); cur=p; for(int i=2;i<=n;i++) { p=new LinkNode(i); cur->link=p; cur=cur->link; //cur紧跟着p后移 } cur->link=first;}void CircList::OutputList(){ LinkNode *p=Locate(s); LinkNode *pre=NULL; int i,j; for(i=0;i<n;i++) { for(j=1;j<m;j++) { pre=p; p=p->link; } cout<<"出列的人是"<<p->date<<" "<<endl; pre->link=p->link; delete p; p=pre->link; }}int main(){ int a,b,c; cout<<"请输入总人数,报数间隔,开始号码"<<endl; cin>>a>>b>>c; if(b==0||c==0) { cout<<"请重新输入!"<<endl; exit(1); } CircList(a,b,c); return 0;}
0 0
- C++单链表求解约瑟夫环
- 约瑟夫问题求解(C++)
- 使用单链表求解约瑟夫环问题
- C语言求解约瑟夫问题
- 求解约瑟夫环问题
- 约瑟夫环求解
- JAVA求解约瑟夫环
- 约瑟夫环问题求解
- 约瑟夫环递归求解
- 约瑟夫环---数学公式求解
- 约瑟夫环数学公式求解
- 约瑟夫环求解O(n)
- 使用单链表求解约瑟夫环问题 (自定义单链表)
- C 单链表 实现约瑟夫环
- C语言循环链表求解约瑟夫环问题(循环方式)
- C/C++,数据结构单链表实现约瑟夫环
- 使用顺序表求解约瑟夫环问题
- 2种方法求解约瑟夫环问题
- 作业
- Git创建分支以及合并代码
- 史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)
- Git代理的设置与取消
- MapleStory移植-技术路线选择
- C++单链表求解约瑟夫环
- 漫步数理统计十九——独立随机变量
- 移动端多余文字显示为...适合webkit内核
- bzoj2876: [Noi2012]骑行川藏
- 《C++ Primer》第2章:变量和基本类型
- J2EE面试题 01
- 后缀表达式(逆波兰表达式)
- AOP实现之相关概念与准备工作(一)
- Day2学习记录