数据结构基础约瑟夫环.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构基础约瑟夫环.docx》由会员分享,可在线阅读,更多相关《数据结构基础约瑟夫环.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学号: 我隆理了火挈琢住报百(数据结构基础)题目约瑟夫环学院自动化专 业电气工程及其自动化班级姓名指导教师李晓红2022年 11月 22 日能不断发现问题,提出问题,解决问题,从不足之处出发,在不断学习中提高自己。8参考文献谭浩强 程序设计北京:清华大学出版社,严蔚敏,吴伟民 数据结构北京清华大学出版社,严蔚敏,吴伟民数据结构北京:清华大学出版社,数据结构(用面向对象方法与 描述),殷人昆等,清华大学出版社。算法与数据结构习题精解和实验指导,宁正元等,清华大学出版社本科生课程大作业成绩评定表学院:自动化姓名:任海亮专业班级:电气1403学号:序号评分项目满分实得分1学习态度认真、遵守纪律102
2、算法设计分析合理性103数据结构设计正确性、可行性204设计结果正确性405设计报告的规范性106设计验收10总得分指导教师签名:2022年11月22日目录1选题描述3.2算法设计3 .3算法分析4.4程序源码6 .5试算截屏图8.6分析与总结9.7参考文献9 .1选题描述约瑟夫环:编号为1, 2, n的n个人按顺时针方向围坐一圈,每人持有一 个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开 始按顺时针方向自1开始顺序报数,报到m时住手报数,报m的人出列,将他 的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此 下去,直至所有人全部出列为止,设计一个程序
3、求出出列顺序。基本要求:1、利用单循环链表作为存储结构摹拟此过程;2、键盘输入总人数、初始报数上限值m及各人密码;3、按照出列顺序输出各人的编号。2算法设计2.1 数据结构设计输入人数N和报 数上限值M调用input函数 摹拟n个人围成 的圈,并赋予每 个人密码调用output函数输出出列序列子函数功能介绍:创建循环单链表,摹拟个人围成的圈输出出列顺序2.2 约瑟夫环算法设计1 ,输入人数N和报数上限值M,调用函数摹拟n个人围成的圈,并赋予每 个人密码,从第一个人开始按顺时针方向自1开始顺序报数,报到m时住手报 数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个 开始重新从1
4、报数,如此下去,直至所有人全部出列为止,调用output函数输出 出列序列结点结构单元模块一一定义单向循环链表的结点结构。2 .各模块之间的调用关系如下:结点结构单元模块单向循环链表单元模块I约瑟夫环单元模块I主程序模块3约瑟夫环算法分析LinkList s;int n,m;请输入总人数请输入上线数输入人数和限定值请输入d个人的密码s=input(n);LinkList input(int n) int i ;LinkList tail,head;head = tail = (LinkList)malloc(sizeof(LNode); 生成新节点 tail-num = 1;请输入第1个人的密
5、码for(i = 2;i num = i;请输入第0个人的密码tail-next = p; tail = p;tail-next = head;return tail;定义指针p用以循环链表,定义变量i计数,指针p每挪移一次,i加1,直到 i=m时,输出指针p所指向的节点序号,也就是令这个“人”出列,q指向该 节点上一节点,令上一节点next域指向该节点下一节点,然后删除该节点,令 头节点L指向该节点下一节点作为再次报数初始“人”,再令i归0,继续循环。 知道q=p时,表示所有“人”出列完毕,删除最后的节点后跳出循环。序号 密码output(s,m,n);void output(LinkLis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 基础 约瑟夫
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内