数据结构课程设计约瑟夫环教材.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录 目录 1 任务书…………………………………………………………………………………….2 正 文 4 一、 数据结构定义 4 1. 抽象数据类型 4 2. 存储结构定义 4 3. 基本操作 5 二、 解题过程 7 1. 问题分解 7 2. 模块结构 7 3. 解题思路 8 三、 实现 9 四、 实验结果 13 1. 实验数据 13 2. 实验结果 13 五、 实验小结 16 1. 数据结构使用小结 16 2. 需完善之处 17 课程设计体会 19 参考文献 20 课程设计(论文)任务书 软件  学院  软件工程 专业 2012 - 3 班 一、课程设计(论文)题目 数据结构课程设计  二、课程设计(论文)工作自 2013 年 12月 24日起至 2013 年 12月 26 日止。 三、课程设计(论文) 地点: 软件工程实训中心 308 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生熟练掌握抽象数据类型的组织和定义; (2)使学生熟练掌握数据类型的定义和实现; (3)培养学生组织和分析数据的能力; (4)培养学生分析和应用基于不同数据结构的算法的能力; (5)提高学生的科技论文写作能力。 2.基本要求: 每位同学在以下题目中任选一题(在方框中打勾),独立完成课程设计: ( 约瑟夫环:参见《数据结构题集》P179。 □ 赫夫曼编/译码器:参见《数据结构题集》P149。 □ 教学计划编制问题:参见《数据结构题集》P150。 3.课程设计论文编写要求 (1)要按照书稿的规格打印誊写课设报告; (2)报告分为封面、任务书(本文档)、正文、 课程设计体会和参考文献四部分; 学生签名: 年 月 日 课程设计(论文)评审意见 (1)题目分析 (20分):优( )、良( )、中( )、一般( )、差( ); (2)流程分析  (30分):优( )、良( )、中( )、一般( )、差( ); (3)数据定义  (30分):优( )、良( )、中( )、一般( )、差( ); (4)代码编写  (10分):优( )、良( )、中( )、一般( )、差( ); (5)创新能力  (10分):优( )、良( )、中( )、一般( )、差( ); (6)格式规范性、设计态度及考勤是否降等级:是( )、否( ) 评阅人:     职称: 讲 师 2014年1月6日 正 文 数据结构定义 抽象数据类型 本设计中用到的数据结构ADT定义如下: ADT Node{ 数据对象:D={id,key|id∈Node,key∈Node,id=0;key=0} 数据关系:R={id,key|id,key∈D, id=0;key=0} 基本操作: CreatList(pHead,k) 操作结果:构造单循环链表 PrintList(pHead) 初始条件:链表已存在 操作结果:打印输出链表数据元素 Joesph(pHead,m) 初始条件:链表已存在,m为出列者所在编号 操作结果:删除出队编号所在结点,并将该结点的key作为新的key,从该结点的下一结点移动 } ADT Node 存储结构定义 数据存储结构的C语言定义如下: typedef struct Node{ //带头结点的单循环链表 int id; //编号 int key; //密码 struct Node *next; }Node,*CircularList; 基本操作 数据结构的基本操作实现如下: 构造单循环链表函数: void CreatList(CircularList *ppHead,const int k){ int i,ikey; Node *pNew,*pCur; for(i=1;i=k;i++){ printf(请输入第%d个人所持有的密码:,i); scanf(%d,ikey); pNew=(Node *)malloc(sizeof(Node)); pNew-id=i; pNew-key=ikey; pNew-next=NULL; if(*ppHead==NULL){ *ppHead=pCur=pNew; pCur-next=*ppHead; } else{ pNew-next=pCur-next; pCur-next=pNew; pCur=pNew; } } printf(约瑟夫环已建成,可以开始进入报数游戏!\n); } 输出单循环链表函数: void PrintList(const Nod

您可能关注的文档

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档