- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告猴子选大王 大学学位论文
数据结构课程设计报告
题目:猴子选大王
——采用循环链表及动态存储的实现 信息工程学院
2010年01 月 20 日
目录
课程设计摘要(题目) ………………………………………………03
1.引言 ………………………………………………………………03
2.需求分析 …………………………………………………………04
2.1问题分析 …………………………………………………04
2.2总体设计 …………………………………………………05
3.概要设计 …………………………………………………………07
3.1模块分析 ……………………………………………………07
3.1.1链表循环输入删除输出…………………………………07
3.1.2各个函数之间的调用关系 ……………………………09
3.2函数的流程分析 ……………………………………………10
4.详细设计 …………………………………………………………12
4.1函数设计 ……………………………………………………12
4.2程序源代码 …………………………………………………13
5.测试结果 …………………………………………………………16
6.设计体会 …………………………………………………………18
7.结束语 …………………………………………………………19
参考文献 …………………………………………………………20
摘要(题目):猴子选大王
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n ;m,n 为整数(nm)
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能
1.引言
随着计算机科学的迅速发展,计算机已深入到揉合社会的各个领域,它
的应用已不再局限于科学计算,以解决一些数学问题,而且可以解决一些抽象化
的具体问题,更多地用于控制,管理及数据处理等非数值计算的处理工作,这便为我们的日常生活提供了很多的方便,譬如说火车、飞机售票系统,学生成绩管理,商品管理系统,医院选址等实际问题。如今程序设计的语言很多,有发展比较完善高级语言,也有最基本的低级语言,然而再好的程序设计也要有一个比较清晰的思路——算法。为了编写好一个好程序,必须分析待处理对象的特性以及各处理对象之间的关系,于是数据结构便成为我们绝佳的选择。数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且已成为其他理工专业的热门选修课。
数据结构是计算机程序设计的重要理论基础,它不仅是计算机学科一门专业技术基础课,它对学习者的的要求很明确:学会分析、研究计算机加工的数据结构的特性,以便为应用设计所需的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。其次,该课程的学习过程也是复杂程序设计的训练过程,要求学习者编写的程序结构或设计的程序结构体清楚、正确、易读,符合软件工程的规范。
循环链表是一种重要的链式结构,其特殊性在于需附设两个指针分别指示表头元素及表尾元素的位置且表头和表尾相邻接,臆造的环状空间巧妙的解决了需循环依次删除元素的约瑟夫问题。
本设计采用目前最通用的程序设计语言之一——C语言作为数据结构和算法的描述语言,单循环链表作为数据存储结构。 充分考虑了循环链表的特点仅通过对两个循环链表的出、入列操作,就简单的实现了要求,动态的模拟出了猴子选大王问题中猴子循环报数的情况。该程序通俗易懂且实用性强,其他类似的算法均可借鉴和参考使用。并且该程序清单详细具体、全面、具有很强的可读性。
2.需求分析
2.1问题分析
根据问题描述得知,该问题中m个猴子围坐在一起形成首尾相接的环,因此可用循环链表解决。从第n个猴子开始出列相当于从链表中删除一个结点。该程序主要有三个模块组成,建立循环链表,报数利用循环链表实现猴子的出列,最终剩下的猴子即猴王。具体步骤如下:
? ? 第一步??首先创建循环链表。
第二步 向链表中填入猴子的编号
? ? 第二步??找第一个开始报数的猴子。
? ? 第三步??数到n让这个猴子出列
第四步??接着开始报数,重复第三步,直到剩下最后一个猴子,它就为大王!!!
2.2总体设计
采用两个循环队列反复出队列与入队列来进行“舞伴
文档评论(0)