数据结构课程设计题目(2012)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012级数据结构课程设计题目

一、文章编辑(限1 人完成)

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章;

二、.宿舍管理查询软件(限1 人完成)

1)任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:

A.采用交互工作方式

B.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)

2)查询菜单: (用二分查找实现以下操作) A.按姓名查询 B.按学号查询 C.按房号查询

3)打印任一查询结果(可以连续操作)

三、校园导航问题(限1 人完成)

设计要求:设计大连民族学院的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)

四、二叉排序树的实现(限1 人完成)

用顺序和二叉链表作存储结构

1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T; 2)对二叉排序树T作中序遍历,输出结果;

3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;

五、哈夫曼编码/译码器(限1 人完成)

设计描述:设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。

基本要求:

1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) 2)分别采用动态和静态存储结构

3)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 4)编码:利用建好的哈夫曼树生成哈夫曼编码; 5)输出编码;

6)设字符集及频度如下表:

字符空格 A B C D E F G H I J K L M

频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20

字符 N O P Q R S T U V W X Y Z

频度 57 63 15 1 48 51 80 23 8 18 1 16 1

【进一步完成内容】 1)译码功能; 2)显示哈夫曼树; 3)界面设计的优化。

六、顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。(限1 人完成)

设有一元多项式Am(x)和Bn(x).

Am(x)=A0+A1x1+A2x2+A3x3+… +Amxm Bn(x)=B0+B1x1+B2x2+B3x3+… +Bnxn

请实现求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。

要求:

1)首先判定多项式是否稀疏

2)分别采用顺序和动态存储结构实现; 3)结果M(x)中无重复阶项和无零系数项; 4)要求输出结果的升幂和降幂两种排列情况。

七、二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。(限1人完成)

要求:遍历的内容应是千姿百态的。

树与二叉树的转换的实现。以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。

八、约瑟夫环(限1 人完成)

问题描述:编号为1,2… n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。

基本要求:

利用单循环链表作为存储结构模拟此过程; 2、键盘输入总人数、初始报数上限值m及各人密码; 3、按照出列顺序输出各人的编号

九、构造可以使n个城市连接的最小生成树(限1 人完成)

问题描述:给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。

基本要求:

1、城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

2、表示城市间距离网的邻接矩阵(要求至少6个城市,10条边)

3、最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。

十、内部排序算法比较

【问题描述】

在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机数据比较各种算法的关键字比较次数和关键字移动次数,以取得直观感受。【任务要求】

1) 对以下7种常用的内部排序算法进行比较:冒泡排序、直接插入排序、简单选择排

序、希尔排序、堆排序、归并排序、快速排序。

2) 待排序表的表长不小于100;其中的数据要用伪随机数程序产生;至少要用5组不

同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。

3) 最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。【测试数据】由随机数产生器生成。

十一、哈希表应用

【问题描述】

利用哈希表进行存储。

【任务要求】

任务要求:针对一组数据进行初始化哈希表,可以进行显示哈希表,查找元素,插入元素,删除元素,退出程序操作。

设计思想:哈希函数用除留余数法构造,用线性探测再散列处理冲突。设计目的:实现哈希表的综合操作

简体中文控制台界面:用户可以进行创建哈希表,显示哈希表,查找元素,插入元素,删除元素。

显示元素:显示已经创建的哈希表。

查找元素:查找哈希表中的元素,分为查找成功和查找不成功。插入元素:在哈希表中,插入一个元素,分为插入成功和失败。删除元素:在已有的数据中,删除一个元素。退出系统:退出程序。

【测试数据】

自行设定,注意边界等特殊情况。

十二、民航订票系统;

任务:通过此系统可以实现如下功能:

1.录入

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

2.查询

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

可以输入起飞抵达城市,查询飞机航班情况;

3.订票(订票情况可以存在一个数据文件中,结构自己设定)

可以订票,如果该航班已经无票,可以提供相关可选择航班;

4.退票

相关文档
最新文档