ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:73.50KB ,
资源ID:12264544      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-12264544.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验一__约瑟夫环问题实验报告电子版.doc)为本站会员(hyngb9260)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

数据结构实验一__约瑟夫环问题实验报告电子版.doc

1、福州大学数计学院数据结构上机实验报告专业:应用数学学号 姓名 班级实验名称线性表结构及其应用 实验内容 约瑟夫环问题实验目的和要求实验目的:利用单向循环链表解决约瑟夫环问题,提高综合设计能力。基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各人的编号。问题描述和主要步骤问题描述:约瑟夫问题:编号为 1,2,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值 m,从第一个人开始按顺时针方向自 1 开始顺序报数,报到 m 时停止报数。报 m 的人出列,将他的密码作为新的 m 值,从他在顺时针方向上的下一个人开始重新从 1 报数,如此

2、下去,直至所有人全部出列为止。试设计一个程序来求出出列顺序,并输出结果。代码实现:#include#includetypedef struct nodeint number;int pass;struct node *next;Node,*List;/初始化循环单链表void initList(List L)L-number = 0;L-pass = 0;L-next = L;/尾插法建立循环单链表void createFromTail(List head,int num,int pas,int length)int i;Node *pri;Node *tmp;head-number = nu

3、m0;head-pass = pas0;pri = head ;for(i = 1;inumber = numi;tmp-pass = pasi;pri-next = tmp;pri = tmp;pri-next = head;/ 从链表中删除void deleteFromList(List *head,Node *tmp)Node *tmp1;Node *tmp2;tmp1 = *head;tmp2 = tmp1;/如果链表剩了一个元素if(tmp-next = tmp)tmp-number = 0 ;tmp-pass = 0;return;/如果此时删除了头节点,此时将头节点转移到头节点的

4、下一个结点if(*head)-number = tmp-number)Node *x;Node *y;x = (*head)-next;while(x != (*head)y = x;x = x-next;y-next = (*head)-next;*head = (*head)-next;else/找到这个节点,删除他while(tmp1-number != tmp-number)tmp2 = tmp1;tmp1 = tmp1-next;tmp2-next = tmp1-next;/ 约瑟夫计数void yuesefu(List head, int m)Node *tmp;tmp = hea

5、d;int time;time = m-1;int i = 0;printf(“出队的顺序:(初始化的 m=20)n“);while(tmp-number != 0) /链表中此时没有结点,则退出for(i=0;inext;printf(“%d “,tmp-number);time = tmp-pass - 1;deleteFromList(/删除结点tmp = tmp-next;/从下一个结点又开始计算 int main(int argc, char *argv)int i;Node *p;int num7 = 1,2,3,4,5,6,7;int pas7 = 3,1,7,2,4,8,4;List head;head = (List)malloc(sizeof(List);initList(head);createFromTail(head,num,pas,sizeof(num)/sizeof(num0);p = head;printf(“n 约瑟夫计数前,每个数和他的密码:n“);for(i = 0;inumber,p-pass);p = p-next;printf(“n“);yuesefu(head,20);printf(“n“);return 0;实验结果(截图表示)研究与探讨通过这次实验对单链表有了更深的了解,在实验中还存在一些问题,需要多做练习来加强。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报