




付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构集中上机试验报告学院:计算机科学与技术专业:计算机科学与技术学号:111111111111班级:(6)姓名:莫莫莫200joseph环上机实验报告实验名称:joseph环题目要求的约瑟夫环操作:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。实验要求:1~)利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。2~)建立输入处理输入数据,输入每个人的密码,建立单循环链表。3~)测试数据:m的初值为6,n=7,7个人的密码依次为3,1,7,2,4,8,4,首先m=6,则正确的输出是什么?实验过程:1.基本算法以及分析:本程序主要是以建立单循环链表的形式,建立起一个约瑟夫环,然后根据之前创立的结点,输入结点里的一些数据,如下structJoseph{ longnumber; Joseph*next; floatscore;};程序有主函数开始,首先,提示输入每个环上所带的密码。然后,开始调用Joseph*Create()函数,利用单循环链表建立起约瑟夫环, pEnd->next=head;就是将最后一个结点的后继指向头结点,函数结尾return(head);将约瑟夫环的头指针返回,并将它赋值head,依次录入各节点的密码值,然后主函数继续调用 Delete函数,实现如下功能:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。2.程序源代码:约瑟夫环#include<iostream>usingnamespacestd;structJoseph{ longnumber; Joseph*next; floatscore;};Joseph*head;Joseph*Create(){ intk=1; Joseph*ps;//当前要插入的结点 Joseph*pEnd;//链尾指针 ps=newJoseph;//为当前要插入的结点分配空间 cin>>ps->score; ps->number=k++; head=NULL;//初始化链表,开始时链表为空 pEnd=ps; while(ps->score!=0)//以输入的学生号为0作为结束条件 { if(head==NULL)//当前插入的结点为链表的第一个结点 head=ps; else pEnd->next=ps; pEnd=ps; ps=newJoseph; cin>>ps->score; ps->number=k++; } pEnd->next=head; deleteps;//释放结点成员number为0的结点所占的内存 return(head);}voidDelete(Joseph*q,intm){ Joseph*p;Joseph*pGuard; pGuard=q; p=newJoseph; p->next=pGuard; while(pGuard->next!=pGuard)//循环判断,若只剩下最后一个节点,则循环结束 { for(inti=1;i<m;i++)//开始顺序报数 { p=pGuard; pGuard=pGuard->next; } p->next=pGuard->next; cout<<pGuard->number<<"havebeendeleted\n"<<endl;//输出循环删除的结点m=pGuard->score;//将节点密码作为新的m值 delete(pGuard); pGuard=p->next; }cout<<pGuard->number<<"havebeendeleted\n"<<endl;//输出最后删除的结点 }voidmain(){ cout<<"请依次输入每个人的密码:"; head=Create(); Delete(head,6); }3.运行结果初始密码6,输入七个人的密码,以0作为结束条件输入密码:3172484输出结果:6147235
4此程序目前的缺点在于,结点密码数据类型定义的存储类型是int型,不能超过-2147483648~21
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学二年级上册道德与法治教学活动策划计划
- 拆除工程人员培训安全防护及文明施工措施
- 部编人教版二年级下册数学信息化教学计划
- 2025三年级科学家庭辅导计划
- 博物馆文化主题展陈施工计划
- 2025年七年级下册语文教学评估计划
- 软件开发招商工作流程他
- 2024-2025年度小学班主任班级冲突调解计划
- 六年级综合实践技能培养计划
- 旅游电商直播对潜在旅游者购买意愿的影响研究
- GB 30980-2014海洋倾倒物质评价规范疏浚物
- GA/T 1169-2014警用电子封控设备技术规范
- 第十二篇 糖尿病患者生活常识
- 污水处理站安全培训课件
- 2015高考全国新课标1地理试题及答案
- 超星尔雅《诗经》导读检测题答案
- GB 27954-2020 黏膜消毒剂通用要求
- 中考《红星照耀中国》各篇章练习题及答案(1-12)
- (完整版)ECRS培训课件
- 外轮理货工作英语
- 华中师范大学辅导员队伍建设实施办法
评论
0/150
提交评论