![北工大数据结构上机实验报告1_第1页](http://file4.renrendoc.com/view/0bc6b1febe06089b3bf63bb6960cdf07/0bc6b1febe06089b3bf63bb6960cdf071.gif)
![北工大数据结构上机实验报告1_第2页](http://file4.renrendoc.com/view/0bc6b1febe06089b3bf63bb6960cdf07/0bc6b1febe06089b3bf63bb6960cdf072.gif)
![北工大数据结构上机实验报告1_第3页](http://file4.renrendoc.com/view/0bc6b1febe06089b3bf63bb6960cdf07/0bc6b1febe06089b3bf63bb6960cdf073.gif)
![北工大数据结构上机实验报告1_第4页](http://file4.renrendoc.com/view/0bc6b1febe06089b3bf63bb6960cdf07/0bc6b1febe06089b3bf63bb6960cdf074.gif)
![北工大数据结构上机实验报告1_第5页](http://file4.renrendoc.com/view/0bc6b1febe06089b3bf63bb6960cdf07/0bc6b1febe06089b3bf63bb6960cdf075.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一报告姓名:学号:完成日期:2015年4月7日题目:设有n个人坐在一个圆桌周围,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,如此反复直到所有的人全部出列为止。Josephus问题是:对于任意给定的n、s、m,求出按出列次序得到的n个人员的序列。试在计算机上模拟Josephus问题的求解工程。需求分析输入形式、输入值的范围:输入的值必须为正整数输出形式:输出为一组正整数程序功能:对于任意给定的n、s、m,求出按出列次序得到的n个人员的序列。测试数据:正确的输入:632正确的输出:462531错误的输入:632错误的输出:123456概要设计主程序流程:开始开始输入数据信息输入数据信息创建数组或链表,并将编号存入创建数组或链表,并将编号存入是否全部出列否是否全部出列是结束结束调试分析调试中并遇到的问题:运行结果少一个数解决方案:在while循环的限制条件中,是循环次数加1算法时空分析:O(n)用户使用说明运行程序后,用户按照提示顺序输入3个正整数,然后按回车可得到结果测试结果输入:632输出:462531源程序以顺序表实现:#include<iostream>usingnamespacestd;voidJJ(intn,ints,intm){int*a=newint[10000];inti;intcount=0;intt=0;for(i=0;i<n;i++){a[i]=i+1; }i=s-1; cout<<"出列次序为:";while(count<n-1){ if(a[i]!=0)t++;if(t==m){t=0;//记数归0cout<<a[i]<<"";//依次输出删除的编号a[i]=0;//给删除的数组赋0count++;//退出人数加1 } i++;if(i==n)i=0;//报数到末尾后i恢复为0} cout<<endl;}voidmain(){intn,s,m;cout<<"请输入总人数:"<<endl; cin>>n;cout<<"请输入开始报数的人员序号:"<<endl; cin>>s;cout<<"请输入出列人员的序号:"<<endl;cin>>m;JJ(n,s,m);}以链表实现:#include<iostream>usingnamespacestd;typedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;voidJJ(intn,ints,intm){LinkListp,r,list=NULL;inti;//建立一个循环链表for(i=0;i<n;i++){p=(LinkList)malloc(sizeof(LNode));p->data=i+1;//存放第i个结点的编号if(list==NULL)list=p;elser->next=p;r=p;}p->next=list;p=list;for(i=1;i<s;i++){r=p;//当m!=1,但s=1时如果没有这条语句,此时删除动作无法完成p=p->next;}//此时p指向第1个出发结点 cout<<"出列次序为:";while(p->next!=p){for(i=1;i<m;i++){r=p;p=p->next;}//p指向第m个结点,r指向第m-1个结点r->next=p->next;//删除第m个结点cout<<p->data<<"";deletep;p=r->next;}cout<<p->data; cout<<endl;}voidmain(){intn,s,m;cout<<"请输入总人数:"<<endl;scanf("%d",&n)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《高损流程培训教材》课件
- 《做家务的小能手》课件
- 探索大航海时代
- 建房安全专项施工方案
- 英文离职申请书
- 篮球俱乐部申请书
- 三年级数学五千以内加减混合两步运算题水平监控训练题大全附答案
- 个人宅基地申请书范文
- 五千以内加减法过关自测例题带答案
- 哲学研究深探
- 2024装配式混凝土建筑工人职业技能标准
- 消火栓及自动喷水灭火系统装置技术规格书
- 军队文职(会计学)考试(重点)题库200题(含答案解析)
- 北师大版八上《生物的遗传和变异》
- 小儿急性喉炎护理查房
- 护理专业应聘个人简历
- 北师大版二年级上册100以内加减法竖式计算题300道及答案
- 全过程跟踪审计及预算绩效管理投标方案(技术方案)
- 【《苏泊尔公司存货管理的优化建议分析》13000字论文】
- 伽马数据:2024年中国游戏产业趋势及潜力分析报告
- 事业单位考试题库:公文写作能力测试试题及答案
评论
0/150
提交评论