数据结构约瑟夫环实验报告.doc

数据结构约瑟夫环实验报告.doc

ID:49075861

大小:278.00 KB

页数:8页

时间:2020-02-28

数据结构约瑟夫环实验报告.doc_第1页
数据结构约瑟夫环实验报告.doc_第2页
数据结构约瑟夫环实验报告.doc_第3页
数据结构约瑟夫环实验报告.doc_第4页
数据结构约瑟夫环实验报告.doc_第5页
资源描述:

《数据结构约瑟夫环实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.专业.专注.《数据结构》课程实验报告书姓名:_____徐鑫_________.word可编辑..专业.专注.学号:____2116110307____专业:____物联网工程____班级:_____1604________2017年10月15日.word可编辑..专业.专注.一、实验目的1.掌握线性表特性2.熟练掌握线性表的基本操作3.利用线性表设计算法并实现二、实验内容1.解决约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出

2、列;依此规律重复下去,直到圆桌周围的人全部出列。2.基本要求:1)根据题目要求设计解决约瑟夫环应用问题的数据结构。2)要求采用C++编程语言实现设计的算法。三、设计思路1.数据逻辑关系的分析可将人的顺序简单编号,从1到n;构造一个循环链表,可以解决首位相连的问题;将人的编号插入到结构体的Data域中;遍历人的编号,输出参与的人的编号;开始报数,从头报数,报到k的人出局(删除此结点),并释放此结点。直到人数只有一个人时,退出循环,输出获胜的人。2.存储结构设计prep,count=2123nfirst……(建立约瑟夫环)prepk(循环结束条件)3.

3、算法的核心思想说明确定需要删除的位置;设置并删除该位置。.word可编辑..专业.专注.已知报数间隔m,我们可以把当前位置加上m获得需要删除的位置,如果获得的位置超过顺序表中实际元素的总长度,则可以通过减去数组的实际长度来修正修正(即模拟环状计数)。然后把顺序表中的当前指向位置设置为该位置,继而删掉该位置。反复进行上述确定位置和删除位置的操作,直到顺序表为空。四、数据结构设计1.类的声明和定义(要求给出完整的类声明和核心成员函数的定义)#ifndefJoseph_H#defineJoseph_H#includeusingname

4、spacestd;structNode//结点{intdata;//存储数据Node*next;//下一个节点的地址};classCircularLinkList//单向循环链表类{public:CircularLinkList()//构造函数{first=newNode;first->data=NULL;first->next=first;}~CircularLinkList(){deletefirst;}//析构函数voidCreateLinkList(inta[],intn);//创建单向循环链表voidPrintLinkList();//遍

5、历链表voidJoseph(intk,intn);//约瑟夫环实现private:Node*first;};#endif2.算法实现#include"Joseph.h"#include#includevoidCircularLinkList::CreateLinkList(inta[],intn){.word可编辑..专业.专注.Node*s,*r=first;//尾指针初始化for(inti=0;idata=a[i];r->next=s;r=s;}r->n

6、ext=first->next;//循环}voidCircularLinkList::PrintLinkList(){intcount=0;//计数器Node*r=first->next;do{cout<data;count++;r=r->next;if(count%10==0)cout<next);//当链表循环到第一节点时跳出循环cout<>请

7、输入约瑟夫密码:";cin>>m;//输入约瑟夫密码Node*pre,*p;pre=first;//工作指针初始化p=pre->next;for(inti=0;inext;p=pre->next;}intcount=1;//计数器初始化,约瑟夫问题至少有两个成员cout<<"***************************************************";while(pre!=p){if(count==m)//如果计数器等于密码{Sleep(1*1000);//执行挂起一段时间(1秒

8、).word可编辑..专业.专注.cout<data<<"号死亡!"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。