资源描述:
《课程设计任务书--数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计说明书设计题目:数据结构课程设计专业:电子信息科学与技术班级:2008级1班设计人:何伟伟山东科技大学年月日第45页课程设计任务书学院:专业:班级:姓名:一、课程设计题目:数据结构课程设计二、课程设计主要参考资料:(1)(2)(3)三、课程设计应解决的主要问题:(1)约瑟夫环问题(2迷宫问题(2)三元组表示的稀疏矩阵的转置、加法和乘法实现(3)前缀算术表达式转换及表达式计算(4)有向无环图每个顶点出发的最短路径及其长度;(5)2-路归并排序四、课程设计相关附件(如图纸、软件等):五、任务发出日期:课程设计完成日期:指导教师签字:系主任签字:第45页指导
2、教师对课程设计的评语指导教师签字:年月日第45页设计1约瑟夫环问题一、需求分析一、具体目标包括:1.实现单循环链表的初始化2.理解约瑟夫环的定义,用循环找到每次报数人的序号3.从单循环链表中删除节点,并判断链表空与非空的临界条件。二、单向循环链表的抽象数据类型定义为:ADTCircleList{数据对象:D{ai
3、ai∈Elemset,i=1,2,…,n,n≥0}数据关系:R={,
4、ai-1,ai∈D,i=2,…n}基本操作:LinkInitList(intn)操作结果:构造一个含有n个元素的单向循环链表。三、问题描述设编号为1
5、,2…,n(n>0)个人按顺时针方向围坐一圈,每人持有一个正整数密码。开始时任意给出一个报数上限值m,从第一人开始顺时针方向自1起顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺指针方向上的下一个人起重新自1起顺序报数;下去,直到所有人全部出列为止。要求设计一个程序模拟此过程。第45页四、基本要求利用单向循环链表存储结构模拟此过程,按照出列的顺序印出个人的编号。二、概要设计一、本程序分三个模块1)主模块Voidmain(){初始化;接受命令;处理命令;}2)单向循环表单元模块,实现单向循环链表的抽象数据类型功能;3)节点结构单元模块,
6、定义单向循环链表的节点结构。三、详细设计1、构建一个单循环链表算法流程图1第45页结束p->next=Lp=qP->next=qhead=qi==1P指向申请空间i<=nP指向申请空间2主模块实现算法从头结点开始,根据报数上限找到下一个出列人的序号,并读出该人的密码作为新的报数上限,从此节点的下一个节点开始进行新的查找。通过指针依次删除出列人相应的节点,直到该链表中无节点,退出循环。第45页输入报数上限jnexti=i+1=1q=L->next输出q的numberm<0结束m=q->next->number删除q节点初始化一个单循
7、环链表四、运行结果及分析测试用例1:(一般数据)第45页五、总结本次实验主要考察了对单循环链表的应用。附:主要源代码typedefstructLNode{intdata[2];structLNode*next;}LNode,*Linklist;voidCreatlist(LinklistL,intn){inti;Linklistp,q=L;printf("请输入报数密码以及学生序号,并用逗号隔开:");L=(Linklist)malloc(sizeof(LNode));L->next=L;Creatlist(L,n);p=L->next;q=L->next
8、;while(j>=3){if((p->data[0])==1){while((p->next)!=q){p=p->next;}p->next=q->next;printf("%d",q->data[1]);j--;free(q);q=p->next;p=q;}第45页for(i=n;i>0;i--){p=(Linklist)malloc(sizeof(LNode));scanf("%d,%d",&p->data[0],&p->data[1]);p->next=L;q->next=p;q=p;}p->next=L->next;printf("学生依次出圈序号为
9、:");printf("***************************************");}voidmain(void){inti=1,j,n;LinklistL,p,q;printf("请输入学生数目n=");scanf("%d",&j);else{while(i<(p->data[0])){q=q->next;i++;}while((p->next)!=q){p=p->next;}p->next=q->next;printf("%d",q->data[1]);j--;free(q);q=p->next;p=q;i=1;}}if(p
10、->data[0]%2){printf