【数据结构实验】约瑟夫环的实现
来源:互联网 发布:传奇武器数据库 编辑:程序博客网 时间:2024/06/06 02:50
#include <iostream>#include <iomanip>using namespace std;typedef int ElemType;typedef struct LNode{ ElemType num; ElemType sec; struct LNode *next;}LNode, * LinkList;void CreatList(LinkList &L,int n){ LNode *r,*s; L = new LNode; L->next = NULL; r = L; cout<<endl<<"请输入"<<n<<"个人的密码"<<endl<<endl; for (int i = 0; i <n; i++) { s = new LNode;//申请新的结点 s->num=i+1; cout<<"请输入第"<<i+1<<"个人的密码:"; cin>>s->sec;//依次输入每个人的密码 s->next = L->next; r->next = s; r = s; }}void Leave(LinkList &L,int m){ LNode *p,*q,*s; p=L->next; cout<<"密码为"<<m<<",出列编号为:"; while(p->next!=p)//如果还有不止一个结点就继续报数,如果只有一个结点就直接输出其对应的num { for(int i=1;i<m;i++)//每次循环找到报数上限第sec个结点,读取对应的num并输出,删除这个结点 { q=p; p=p->next; } cout<<p->num<<endl; m=p->sec; cout<<"密码为"<<m<<",出列编号为:"; s=p; q->next=p->next; p=p->next; free(s);//释放结点 } cout<<p->num<<endl; free(p);//释放最后一个结点}void PrintList(LinkList L){ LNode *t; t = L->next; while (1) { cout<<setiosflags(ios::fixed)<<setiosflags(ios::right); cout <<setw(10)<< t->num << " "<<t->sec<<endl;; t = t->next; if (t->next == L->next) { cout<<setw(10) << t->num<< " "<<t->sec<<endl;; break; } }}void main(){ LinkList L; int m,n;//m为初始密码,n为报数人数 cout<<"请输入初始密码(正整数)和人数:"<<endl; cin >>m>>n; CreatList(L,n); cout << "每个人的编号 密码为:" << endl; PrintList(L);//输出每个人的编号和密码核对是否有错 Leave(L,m);//报数函数}
11 0
- 【数据结构实验】约瑟夫环的实现
- 数据结构实验 约瑟夫环的循环链表实现
- 数据结构实验--约瑟夫环
- 数据结构实验1---约瑟夫环(“链表”实现)
- 数据结构实验(严蔚敏版)1.2约瑟夫环
- 数据结构-约瑟夫环的简单实现(循环链表)
- C/C++,数据结构单链表实现约瑟夫环
- 数据结构--约瑟夫环(含密码,C++实现)
- 约瑟夫环的实现
- 约瑟夫环的实现
- 约瑟夫环的实现
- 约瑟夫环的实现
- 约瑟夫环的实现
- 约瑟夫环的实现
- 约瑟夫环的实现
- 实验三 约瑟夫环和集合的相关运算的设计和实现
- 约瑟夫环实验报告
- 约瑟夫环实验报告
- Java层与Jni层的数组传递
- 惯导
- Ubuntu 14.04 LTS 系统中使用rbenv配置Ruby on Rails环境
- 在Myeclipse10中配置tomcat后新建工程
- 美国电商是如何用大数据玩转“双十一”的?
- 【数据结构实验】约瑟夫环的实现
- 代理服务概述
- 【Codeforces Round 326 (Div 2)E】【树链剖分】Duff in the Army 树上给定路径上编号最小的几个人
- IntelliJ IDEA 15 Released 破解 注册码
- 简单工厂模式和策咯模式的区别与应用
- 在win7命令行下编译运行C++程序
- 三维血管中轴线特征描述
- cannot reload avd list问题
- 性能优化tips(一)