约瑟夫环课程设计报告.doc_第1页
约瑟夫环课程设计报告.doc_第2页
约瑟夫环课程设计报告.doc_第3页
约瑟夫环课程设计报告.doc_第4页
约瑟夫环课程设计报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中北大学数 据 结 构课 程 设 计 说 明 书学生姓名:王伟学 号:1021011739学 院:软件学院专 业:软件开发与测试题 目:约瑟夫环指导教师李瑞红2011年12月20日1. 设计任务概述(包括系统总体框图及功能描述)输入总人数 系统总体框图形成循环链表输出出列顺序 功能描述 (1) 利用单循环链表作为存储结构模拟此过程; (2) 键盘输入总人数、初始报数上限值m及各人密码; (3) 按照出列顺序输出各人的编号。2. 本设计所采用的数据结构(如:链表、栈、树、图等)该设计需要单循环链表作为存储结构,结构示意图如下:3. 功能模块详细设计3.1 详细设计思想建立一个循环单链表,然后输入要建立结点的个数,在每个结点输入一个密码,同时按输入时的顺序进行编号:1,2,3,4, n。任选一个正整数x作为初始报数上限值。从定义的那个头结点开始,数到x,输出该结点所储存的编号和密码。并将该密码作为新的x值,同时还将该密码所在的结点删除。如此循环链表还剩最后一个数据的时候停止此循环。3.2 核心代码#include#includestruct Lnode /*定义链表*/ int number; int password; struct Lnode *next; Lnode,*p,*q,*head;int main(void) int i,j; int m,n; printf(please enter the number of people :); /*输入测试人的数量*/ scanf(%d,&n); printf(n); for(i=1;inext=q; p=q; printf(please enter the %d peoples password:,i); /*输入每个人所持有的密码值*/ scanf(%d,&(p-password); p-number=i; p-next=head; /*形成循环链表*/ p=head; printf(nplease enter the number m:); scanf(%d,&m); printf(nThe password is:n); for (j=1;j=n;j+) /*输出各人的编号*/ for(i=1;inext); m=p-password; printf(%d ,p-number); p-number=p-next-number; /*删除报m的节点*/ p-password=p-next-password; q=p-next; p-next=p-next-next; free(q); printf(nn); printf(please anykey to turn back.); getch();3.3 程序运行结果(拷屏)第一步运行输入的人数第二步输入每个人的密码第三步输出每个人出列的顺序4. 课程设计心得、存在问题及解决方法(1) 课程设计心得: 一周的课程设计结束了,课程设计弥补了平时学习上被遗忘的一些知识。约瑟夫环问题,主要是以链表和指针知识为主的编程设计,此次课程设计不但加深了自己对链表认识,同时也了解了更多关于链表在数据结构中的其它应用,从线性表的存储方式到分类,自己都有认真去看了一次。指针方面的知识,在C语言中是极其重要的。之前对于指针的使用一直不怎么熟悉,经过这次课程设计之后,指针的使用,基本上都懂了。还有就是各个函数之间的传递和调用,运用起来也比较熟悉了,不像以前那样,不知怎么用,这次课程设计,给了自己很大的帮助,只是一道题目涉及的内容有点少,一道题目只涉及到一两个知识点,如果题目能够涉及到,树,图,栈,队列,串,这些数据结构中的重要知识点,这样对我们的能力培养会更好一点。(2) 存在问题及解决方法:问题一:在创建循环链表时,没有在头结点储存数据,造成在密码和编号输出不正确。解决方案:在输入数据时,从头结点开始储存数据。问题二:当链表被一个个删

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论