数据结构课程设计汇.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计汇

课程设计说明书 设计题目: 数据结构课程设计 专业: 电子信息科学与技术 班级: 2008级1班 设计人: 山 东 科 技 大 学 年 月 日 课程设计任务书 学院: 专业: 班级: 姓名: 课程设计题目: 数据结构课程设计 课程设计主要参考资料: (1) (2) (3) 三、课程设计应解决的主要问题: (1)约瑟夫环问题 (2 迷宫问题 (2)三元组表示的稀疏矩阵的转置、加法和乘法实现 (3)前缀算术表达式转换及表达式计算 (4)有向无环图每个顶点出发的最短路径及其长度; (5)2-路归并排序 四、课程设计相关附件(如图纸、软件等): 五、任务发出日期: 课程设计完成日期: 指导教师签字: 系主任签字: 指导教师对课程设计的评语 指导教师签字: 年 月 日 设计1 约瑟夫环问题 一、需求分析 一、具体目标包括: 1.实现单循环链表的初始化 2.理解约瑟夫环的定义,用循环找到每次报数人的序号 3. 从单循环链表中删除节点,并判断链表空与非空的临界条件。 二、单向循环链表的抽象数据类型定义为: ADT CircleList{ 数据对象:D{ai | ai∈Elemset,i=1,2,…,n,n≥0} 数据关系:R={ai-1,ai,an,a1 | ai-1,ai∈D,i=2,…n} 基本操作: Link InitList(int n) n个元素的单向循环链表。 三、问题描述 设编号为1,2…,n(n0)四、基本要求 Void main(){ 初始化; 接受命令; 处理命令; } 2)单向循环表单元模块,实现单向循环链表的抽象数据类型功能; 3)节点结构单元模块,定义单向循环链表的节点结构。 三、详细设计 1、构建一个单循环链表算法 流程图1 2主模块实现算法 从头结点开始,根据报数上限找到下一个出列人的序号,并读出该人的密码作为新的报数上限,从此节点的下一个节点开始进行新的查找。通过指针依次删除出列人相应的节点,直到该链表中无节点,退出循环。 四、运行结果及分析 测试用例1:(一般数据) 五、总结 本次实验主要考察了对单循环链表的应用。 附:主要源代码 typedef struct LNode{ int data[2]; struct LNode *next; }LNode, *Linklist; void Creatlist(Linklist L,int n) {int i;Linklist p, q=L; printf(请输入报数密码以及学生序号,并用逗号隔开:\n); for(i=n;i0;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(学生依次出圈序号为:); printf(\n***************************************\n);} void main(void){ int i=1,j,n; Linklist L,p,q; printf(请输入学生数目n=); scanf(%d,j); L=(Linklist)malloc(sizeof(LNode)); L-next=L; Creatlist(L,n); p=L-next;q=L

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档