下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构集中上机试验报告学院:计算机科学与技术专业:计算机科学与技术学号: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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 说课心得体会
- 2022-2023学年七年级语文上学期期末考试试题汇编:词语运用
- 浙江省台州市山海协作体2024-2025学年高二上学期期中联考 化学试题(含答案)
- 山东名校考试联盟2024-2025学年上学期期中检测 高三历史试题(无答案)
- 广西壮族自治区玉林市玉州区南江镇中心小学2024-2025学年五年级上册期中英语试题(无答案)
- 第4单元 比-单元素养测评(2)-2024-2025学年数学人教版六年级上册(含答案解析)
- 浙江地区高考语文五年高考真题汇编名篇名句默写
- 2025年高考化学总复习试题分类训练:金属有关的工艺流程(解析卷)
- 幼儿园厨师长期劳动合同
- 国家战略合作意向书
- 500万羽智能化蛋鸡养殖项目可行性研究报告-立项备案
- 放弃父母的财产的协议书
- 《韩非子·五蠹》课件
- 公司危险源辨识与风险评价及控制措施清单
- 语文教学中如何进行分组教学
- 香港2023年国家开发银行香港分行社会招聘考试参考题库含答案详解
- Chinese Tea 中国茶文化 中英文
- 钻孔灌注桩灌注施工检查记录
- 《如何在初中体育大单元教学中更好的落实“教会”“勤练”“常赛”》 论文
- 高标准农田施工组织设计(全)
- 基于学科核心素养的单元整体教学设计论文以铁及其化合物为例
评论
0/150
提交评论