欢迎来到天天文库
浏览记录
ID:6776334
大小:47.50 KB
页数:4页
时间:2018-01-25
《课程设计 数据结构报告书 》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西安郵電學院数据结构报告书系部名称:计算机系学生姓名:专业名称:计算机科学与技术班级:0405学号:10时间:年月日至年月日实验题目约瑟夫环一、 实验目的用一个循环链表来实现约瑟夫环问题二、 实验内容编号为1,2,……,n的n个人按顺序时针方向围坐一圈,每个人吃一个密码。一开始任选一个整数作为报数上限值m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从它在顺时针方向上的下一个人开始重新从1报数,如此下去直到所有人全部出列。三、需求分析输入m=20;n=7,7个人的密码依次是:3,1,7,2,4,8,4,出列顺序为:
2、6,1,4,7,2,3,5。四、详细设计及运行结果流程图,函数之间相互调用的图示,程序设计及编码,运行结果。M为新密码开始输入密码M>=0i=0I=mI++表是否为空结束输出序号noYesYesnoYesNo五、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。2、在设计过程中的感受。六、源程序清单(略,详见电子版实验报告)#include"stdio.h"typedefstructList{intdate;intnumber;structList*next;}List;List*CreateList(){List*L,*p,*q;inti=
3、1,k;p=L=(List*)malloc(sizeof(List));L->date=-1;p->next=L;printf("创建结束输入-1,否则输入第1个元素密码:");scanf("%d",&k);if(k==-1)returnL;do{q=(List*)malloc(sizeof(List));q->number=i;i++;p->next=q;q->next=L;p=q;q->date=k;printf("结束清输入-1,否则输入第%d个元素密码:",i);scanf("%d",&k);}while(k!=-1);returnL;}voidManageList(
4、List*L){List*p=L->next,*q=L;intk,i=1;printf("请输入首密码:");scanf("%d",&k);while(p!=p->next){if(i==k){k=p->date;printf("--%d--%d",p->number,p->date);i=1;q->next=p->next;free(p);p=q->next;continue;}q=p;p=p->next;if(p!=L)i++;}}voidOutputList(List*l){List*p=l->next;while(p!=l){printf("--%d--%d"
5、,p->number,p->date);p=p->next;}}main(){List*L;L=CreateList();OutputList(L);ManageList(L);}
此文档下载收益归作者所有