欢迎来到天天文库
浏览记录
ID:10905350
大小:599.50 KB
页数:20页
时间:2018-07-08
《数据结构课程设计报告猴子选大王大学毕设论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构课程设计报告题目:猴子选大王——采用循环链表及动态存储的实现班级:计算机082班姓名:指导教师:成绩:信息工程学院2010年01月20日-20-目录课程设计摘要(题目)………………………………………………031.引言………………………………………………………………032.需求分析…………………………………………………………042.1问题分析…………………………………………………042.2总体设计…………………………………………………053.概要设计…………………………………………………………073.1模块分析……………………………………………………
2、073.1.1链表循环输入删除输出…………………………………073.1.2各个函数之间的调用关系……………………………093.2函数的流程分析……………………………………………104.详细设计…………………………………………………………124.1函数设计……………………………………………………124.2程序源代码…………………………………………………135.测试结果…………………………………………………………166.设计体会…………………………………………………………187.结束语…………………………………………………………19参考文献…………………………
3、………………………………20-20-摘要(题目):猴子选大王任务:一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。要求:输入数据:输入m,n;m,n为整数(n4、用于控制,管理及数据处理等非数值计算的处理工作,这便为我们的日常生活提供了很多的方便,譬如说火车、飞机售票系统,学生成绩管理,商品管理系统,医院选址等实际问题。如今程序设计的语言很多,有发展比较完善高级语言,也有最基本的低级语言,然而再好的程序设计也要有一个比较清晰的思路——-20-算法。为了编写好一个好程序,必须分析待处理对象的特性以及各处理对象之间的关系,于是数据结构便成为我们绝佳的选择。数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且已成为其他理工专业的热门选修课。数据结构是计算机程序设计的重要理论基础,它不仅是计算机学5、科一门专业技术基础课,它对学习者的的要求很明确:学会分析、研究计算机加工的数据结构的特性,以便为应用设计所需的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。其次,该课程的学习过程也是复杂程序设计的训练过程,要求学习者编写的程序结构或设计的程序结构体清楚、正确、易读,符合软件工程的规范。循环链表是一种重要的链式结构,其特殊性在于需附设两个指针分别指示表头元素及表尾元素的位置且表头和表尾相邻接,臆造的环状空间巧妙的解决了需循环依次删除元素的约瑟夫问题。本设计采用目前最通用的程序设计语言之一——C语言作为数据结构和算法6、的描述语言,单循环链表作为数据存储结构。充分考虑了循环链表的特点仅通过对两个循环链表的出、入列操作,就简单的实现了要求,动态的模拟出了猴子选大王问题中猴子循环报数的情况。该程序通俗易懂且实用性强,其他类似的算法均可借鉴和参考使用。并且该程序清单详细具体、全面、具有很强的可读性。2.需求分析2.1问题分析根据问题描述得知,该问题中m个猴子围坐在一起形成首尾相接的环,因此可用循环链表解决。从第n个猴子开始出列相当于从链表中删除一个结点。该程序主要有三个模块组成,建立循环-20-链表,报数利用循环链表实现猴子的出列,最终剩下的猴子即猴王。具体步骤如下: 第一步7、 首先创建循环链表。第二步向链表中填入猴子的编号 第二步 找第一个开始报数的猴子。 第三步 数到n让这个猴子出列第四步 接着开始报数,重复第三步,直到剩下最后一个猴子,它就为大王!!!2.2总体设计采用两个循环队列反复出队列与入队列来进行“舞伴配对”。程序中主要用到以下抽象数据类型:1)设定链表抽象数据类型的定义ADTstruct{对象数据=(整数)操作对象:structmonkey*create()建立循环链表structmonkey*findout(start,n)-20-找出被淘汰的猴子的上一个Structmonkey*letout(la8、st)删掉被淘汰的猴子,返回的指针值指向下一个猴子}。基本操作(1
4、用于控制,管理及数据处理等非数值计算的处理工作,这便为我们的日常生活提供了很多的方便,譬如说火车、飞机售票系统,学生成绩管理,商品管理系统,医院选址等实际问题。如今程序设计的语言很多,有发展比较完善高级语言,也有最基本的低级语言,然而再好的程序设计也要有一个比较清晰的思路——-20-算法。为了编写好一个好程序,必须分析待处理对象的特性以及各处理对象之间的关系,于是数据结构便成为我们绝佳的选择。数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且已成为其他理工专业的热门选修课。数据结构是计算机程序设计的重要理论基础,它不仅是计算机学
5、科一门专业技术基础课,它对学习者的的要求很明确:学会分析、研究计算机加工的数据结构的特性,以便为应用设计所需的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。其次,该课程的学习过程也是复杂程序设计的训练过程,要求学习者编写的程序结构或设计的程序结构体清楚、正确、易读,符合软件工程的规范。循环链表是一种重要的链式结构,其特殊性在于需附设两个指针分别指示表头元素及表尾元素的位置且表头和表尾相邻接,臆造的环状空间巧妙的解决了需循环依次删除元素的约瑟夫问题。本设计采用目前最通用的程序设计语言之一——C语言作为数据结构和算法
6、的描述语言,单循环链表作为数据存储结构。充分考虑了循环链表的特点仅通过对两个循环链表的出、入列操作,就简单的实现了要求,动态的模拟出了猴子选大王问题中猴子循环报数的情况。该程序通俗易懂且实用性强,其他类似的算法均可借鉴和参考使用。并且该程序清单详细具体、全面、具有很强的可读性。2.需求分析2.1问题分析根据问题描述得知,该问题中m个猴子围坐在一起形成首尾相接的环,因此可用循环链表解决。从第n个猴子开始出列相当于从链表中删除一个结点。该程序主要有三个模块组成,建立循环-20-链表,报数利用循环链表实现猴子的出列,最终剩下的猴子即猴王。具体步骤如下: 第一步
7、 首先创建循环链表。第二步向链表中填入猴子的编号 第二步 找第一个开始报数的猴子。 第三步 数到n让这个猴子出列第四步 接着开始报数,重复第三步,直到剩下最后一个猴子,它就为大王!!!2.2总体设计采用两个循环队列反复出队列与入队列来进行“舞伴配对”。程序中主要用到以下抽象数据类型:1)设定链表抽象数据类型的定义ADTstruct{对象数据=(整数)操作对象:structmonkey*create()建立循环链表structmonkey*findout(start,n)-20-找出被淘汰的猴子的上一个Structmonkey*letout(la
8、st)删掉被淘汰的猴子,返回的指针值指向下一个猴子}。基本操作(1
此文档下载收益归作者所有