- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验
数据结构实验报告 班级:0314401 学号:031440122 姓名:贺超《数据结构》实验指导书实验一 线性表的应用【实验目的】1. 熟练掌握线性表的基本操作在顺序存储和链式存储上的实现;2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3. 掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;4. 通过本章实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。【实验内容】约瑟夫问题的实现:n只猴子要选猴王,所有猴子按1,2,…,n编号围坐一圈,从第1只开始按1,2,…,m报数,凡报到m号的猴子退出圈外,如此循环报数,直到圈内剩下一只猴子时,这个猴子就是猴王。编写一个程序实现上述过程,n和m由键盘输入。【实验要求】1. 要求用顺序表和链表分别实现约瑟夫问题;2. 独立完成,严禁抄袭;3. 上交的实验报告由如下部分组成:①实验名称②实验目的③实验内容(问题描述,算法描述,程序清单,测试结果,算法分析)?方法一: #includestdio.h#includestdlib.htypedef struct{ int *head;} LIST;void creat(LIST list , int n){ if(n = 0) return ; list.head = (int *)malloc(sizeof(int)*n); if(!list.head) return ; for(int i=1 ; i= n ; ++i) { list.head[i-1] = i; }}void destory(LIST list){ if(!list.head) return ; free(list.head); list.head = NULL;}int main(){ int n,m; LIST list; while(scanf(%d%d,n,m)) { if(n = 0) continue; if(m = 0) continue; if(m == 1) printf(%d\n,n); else { creat(list,n); int cnt=1; int temp = n; for(int i=0; n1; ) { if(cnt == m) { cnt = 1; list.head[i] = 0; --n; } else ++cnt; if(i==temp-1) i=0; else ++i; for(; list.head[i] == 0;) { if(i == temp-1) i=0; else ++i; } //printf(cnt:%d m:%d\n,cnt,m); } for(int i=0 ; itemp ; ++i) if(list.head[i]) { printf(%d\n,list.head[i]); break; } destory(list); } } return 0;}方法二:#includestdio.h#includestdlib.hstruct node{ int date; struct node *next;};typedef struct node* LIST;void creat(LIST list , int n){ if(n = 0) exit(1); int i=1; list = (LIST)malloc(sizeof(struct node)*1); if(!list) exit(1); list-date = i; list-next = NULL; LIST temp=list; LIST cur = list; for(int j=1 ; jn ; ++j) { cur = (LIST)malloc(sizeof(struct node)*1); if(!cur) exit(1); cur-date = ++i; cur-next = NULL; temp-next = cur; temp = cur; } cur-next = list; cur = temp = NULL;}int main(){ int n,m; LIST list=NULL; while(EOF != scanf(%d%d,n,m)) { if(n = 0) continue; if(m = 0) continue; if(m == 1) printf(%d,n); else { creat(list,n); if(!list) return 1; int i=1; LIST tmp = list; for(; list-next != list;) { if(i == m) { i=1; LIST temp=list; tmp-
您可能关注的文档
最近下载
- 北师大版六年级数学上册第二单元测试题(共4份).doc VIP
- 2025年最新人教版九年级(初三)数学上册教学计划及进度表(新课标).docx
- 医院放射诊疗事故应急处置.pptx
- 2025年泰安市中心医院医护人员招聘参考题库含答案解析.docx VIP
- 贵州某二水电站进水口工程引水隧洞混凝土衬砌施工技术方案.doc.doc VIP
- 浙教版八年级上册数学第二章 特殊三角形(含答案).pdf VIP
- 机电工程质量通病防治手册.pptx VIP
- 儿童呼吸道合胞病毒感染的症状与治疗方法(1)PPT课件.pptx VIP
- D-Z-T 0205-2020 矿产地质勘查规范 岩金(正式版).docx VIP
- CHCC2025第26届全国医院建设大会:消毒供应中心质量控制指标(2024年版)解析.pdf VIP
文档评论(0)