数据结构课程设计2011版.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目(2011年版 :
(1-6题必做, 做完 10题并演示答辩参评优秀
1、系统进程统计(必做 (链表
[问题描述 ]
设计一个程序,每秒统计一次当前系统的进程状况,并按照内存使用自多到少排序打印输出相关信息。对已经结束的进程,另外给出一个列表,并显示该进程的结束时间和持续时间。
[基本要求 ]
(1 该题目要求使用两个链式线性表。一个链表存储当前活动进程,要求使用双向链表,排序要求是按照内存使用自多到少排序。另外一个链表存储已结束进程,要求使用单向链表,按照结束时间离当前时间的关系排序,最近的最前,最远的最后。
(2 每秒在窗口内更新一次当前系统进程情况,输出内容包括:进程名,持续时间, 内存使用情况。
(3 每秒在窗口内更新一次已结束进程情况,输出内容包括:进程名,持续时间, 结束时间。
(4 注意进程在这两个链表中的切换,一个进程既可被结束,也可以过一段时间后再被运行。
2、算术表达式求值 (必做 (栈
[问题描述 ]
一个算术表达式是由操作数 (operand、运算符 (operator和界限符 (delimiter组成的。假设操作数是正实数,运算符只含加减乘除等四种运算符,界限符有左右括号
和表达式起始、结束符“ #” ,如:#(7+15.1 *(23.5-28/4 #。引入表达式起始、结束符是为了方便。编程利用“ 算符优先法” 求算术表达式的值。
[基本要求 ]
(1 从键盘或文件读入一个合法的算术表达式,输出正确的结果。
(2 显示输入序列和栈的变化过程。
(3 考虑算法的健壮性,当表达式错误时,要给出错误原因的提示。
3、二叉树的应用 (必做 (二叉树
[问题描述 ]
编程实现二叉树的建立,先序、中序、后序、层序遍历(递归和非递归方法 ,二叉树的高度、繁茂度,交换左右子树,统计叶子节点的数目,判断是否为完全二叉树, 按树的形态在屏幕上打印输出;
[基本要求 ]
(1 从文件中读入建树信息,树的节点数目不小于 20个,树的高度不小于 4。
(2 建树信息采用两行英文字符表示,每个英文字符代表一个结点,第 1行为树的先序遍历结果,第 2行为树的中序遍历结果。
4、全国省会城市通信布线问题 (必做 (图
[问题描述 ]
用无向网表示全国省会城市,图中顶点表示城市信息,图中的边表示城市之间的距离,存放长度信息。要求能够建立通信网,所花的代价最小。
[基本要求 ]
(1 原始数据存在文件中,方便读入;
(2 建立全国通信网,要求所花的代价最小。
5、 Hash 表应用 (必做 (查找
[问题描述 ]
设计散列表实现身份证查找系统,对身份证号进行 Hash 。
[基本要求 ]
(1 设每个记录有下列数据项:身份证号码(虚构,位数和编码规则与真实一致即可、姓名、地址;
(2 从键盘或文件输入各记录,以身份证号码为关键字建立散列表;
(3 采用开放定址的方法解决冲突;
(4 查找并显示给定身份信息的记录;
6、排序算法比较 (必做 (排序
[问题描述 ]
利用随机函数产生 N 个随机整数(N = 500, 1000, 1500, 2000, 2500,… ,30000 , 利用直接插入排序、折半插入排序,起泡排序、快速排序、选择排序、堆排序,基数排序七种排序方法(可添加其它排序方法进行排序(结果为由小到大的顺序 ,并统计每一种排序所耗费的时间(即比较次数。
[基本要求 ]
(1 原始数据存在文件中,每个整数一行,方便读入;
(2 屏幕显示每种排序所花的比较次数。
7、 Huffman 编码与解码 (选做 (Huffman 编码、二叉树
[问题描述 ]
对一篇英文文章,统计各字符出现的次数,实现 Huffman 编码,以及对编码结果的解码。
[基本要求 ]
(1 输出每个字符出现的次数和编码,其中求最小权值要求用堆实现。
(2 在 Huffman 编码后,要将编码表和英文文章编码结果保存到文件中,编码结果必须是二进制形式,即 0 1的信息用比特位表示,不能用字符’ 0’ 和’ 1’ 表示。
(3 提供读编码文件生成原文件的功能。
8、景点游历问题 (选做 (图
[问题描述 ]
以学校和南京景点为例,设计并实现学校和景点之间,景点与景点之间的游历。[基本要求 ]
(1景点个数不少于 15个,景点之间的路径不少于 30条。
(2给出任意两个景点之间的最短路径。
(3给出学校到任意景点之间的最短路径。
9、关键路径问题 (选做 (图
[问题描述 ]
设计并实现关键路径的一种应用。
[基本要求 ]
(1实现拓扑排序和关键路径的发现。
(2给出一个具体的应用环境。
10、 B-树应用 (选做 (查找
[问题描述 ]
设计并实现 B-树的一种应用。
[基本要求 ]
(1实现 B-树的插入、删除、查找功能。
(2给出一个具体的应用环境。
成绩评定细则:
1. 正确性:程序是否可以运行,结果是否正确(20分
2. 功能的完备性:是否实现要求的所有子功能(40分
3. 课程设计报告中的算法说明的清晰程度,课程设计报告中总结的深刻程度(20分
4. 独立完成情况 ( 40分
总计:100分
加分项目:
1. 健壮性:异常处理的情况
2. 可读性:代码编写是否规范,是否便于阅读。如函数、变量命名, ‘ { }’的缩进, 关键位置适量注释等