下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构集中上机试验报告学院:计算机科学与技术专业:计算机科学与技术学号: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年西安外国语大学第二批专任教师岗位公开招聘34人的备考题库附答案详解
- 简约拟物青春成长手册模板
- 2025年深圳市建筑工务署面向社会公开招聘员额人员备考题库及1套参考答案详解
- 模具制造数字化车间建设中的智能化设备选型与配置研究教学研究课题报告
- 2025年南昌职业大学图书馆馆长岗位公开招聘备考题库附答案详解
- 2025年宁波市升力同创科技咨询服务有限公司招聘备考题库及一套参考答案详解
- 2025年新乡市中医院招聘备考题库及参考答案详解
- 深圳市龙华区平安建设中心2025年12月公开招聘专业聘用人员备考题库完整答案详解
- 富阎高新初级中学教师招聘(2026年应届毕业生)备考题库完整答案详解
- 2025年浙江舟山群岛新区六横文化旅游投资集团有限公司招聘备考题库完整参考答案详解
- 美国国家公园管理
- 福建省宁德市2024-2025学年九年级上学期期末考试道德与法治试题
- 人教版五年级语文上册期末考试卷【含答案】
- 四川省2025年高考综合改革适应性演练测试化学试题含答案
- 篮球原地投篮教学
- 医疗机构安全生产事故综合应急预案
- 水利信息化计算机监控系统单元工程质量验收评定表、检查记录
- 《管理学原理》课程期末考试复习题库(含答案)
- DL-T+5174-2020燃气-蒸汽联合循环电厂设计规范
- 消费者在直播带货中冲动行为的影响因素探究
- 人工智能中的因果驱动智慧树知到期末考试答案章节答案2024年湘潭大学
评论
0/150
提交评论