2023年数据结构约瑟夫环实验报告2.pdf
《2023年数据结构约瑟夫环实验报告2.pdf》由会员分享,可在线阅读,更多相关《2023年数据结构约瑟夫环实验报告2.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、伏 倒 咛洗石n 数据结构课程实验报告书RMAL姓名:徐鑫学号:_ _ _ _ _ _ _ _专 业:物 联 网 工 程班级:16042023年 10 月15 日一、实验目的1.掌握线性表特性2.纯熟掌握线性表的基本操作3 .运用线性表设计算法并实现二、实验内容1.解决约瑟夫环问题:已知n 个人(以 编 号 1,2,3.n 分别表达)围坐在一张圆桌周边。从编号为k 的人开始报数,数到m的那个人出列;他的下一个人又从 1 开始报数,数 到 m的那个人又出列;依此规律反复下去,直到圆桌周边的人所有出列。2.基本规定:1)根据题目规定设计解决约瑟夫环应用问题的数据结构。2)规定采用C+编程语言实现设
2、计的算法。三、设计思绪1 .数据逻辑关系的分析。令将 人的顺序简朴编号,从 1 至 Un;。土 构造一个循环链表,可以解决首位相连的问题;4s将人的编号插入到结构体的Da t a 域中;布应历人的编号,输出参与的人的编号;开始报数,从头报数,报 到 k 的人出局(删除此结点),并释放此结点。直到人数只有一个人时,退出循环,输出获胜的人。2.存储结构设计(建立约瑟夫环)(循环结束条件)3.算法的核心思想说明口拟定需要删除的位置;口。设立并删除该位置。已知报数间隔m,我们可以把当前位置加上m获得需要删除的位置,假如获得的位置超过顺序表中实际元素的总长度,则可以通过减去数组的实际长度来修正修正(即模
3、拟环状计数)。然后把顺序表中的当前指向位置设立为该位置,继而删掉该位置。反复进行上述拟定位置和删除位置的操作,直到顺序表为空。四、数据结构设计1 .类的声明和定义(规定给出完整的类声明和核心成员函数的定义)o b#if n def Joseph_H#d e fin e J o seph_H#include using namespac e std;st r uct N o d e/结点(int data;/存储数据woNod e*nex t;下一个节点的地址);clas s Circul a rL i nkL i s t/单向循环链表类publ i c:Circular L in k L i
4、s t()构造函数。o f irs t=n ew N ode;3 first-da t a=NULL;市 r st-next=f i rst;8 g Circ u 1 a rL i n k L ist()d el e t e f i rs8V o id C r eateLi n kLi s t(in t a,i nt n);3 voi d P r int L ink L ist();遍历链表g v o id Joseph(int k,i n t n);约瑟夫环实现p riva t e:o de*f irst;);#end i f2.算法实现#include Jo s e p h.h#i n c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据结构 约瑟夫 实验 报告
限制150内