《数据结构》课程设计课题表课程内容课题编号1.设计出链表结构的相关函数库,以便在程序设计中调用2.设计出顺序表结构的相关函数库,以便在程序设计中调用3.设计一元多项式的相关函数库,以便在程序设计中调用4.设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符的任意整型表达式进行求解5.设计出二叉链表结构的相关函数库,以便在程序设计中调用6.设计出树结构的相关函数库,以便在程序设计中调用7.采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比8.设计出图结构的相关函数库,以便在程序设计中调用9.校园导航问题10.比较排序算法的时间性能11.飞机订票系统任务12.文章编辑13.教学计划编制问题14.活期储蓄帐目管理15.简易文本编辑器16.图的遍历和生成树求解实现17.宿舍管理查询软件18.图书借阅管理系统19.二叉排序树的实现20.稀疏矩阵应用21.树与二叉树的转换的实现22.关键路径问题23.哈希表设计与实现课题1:设计出链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题3:设计一元多项式的相关函数库,以便在程序设计中调用。
要求:(1)所设计的数据结构应尽可能节省存储空间。
(2)设计一元多项式的各种基本函数,要求有一元多项式的加减法和乘法。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示 出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题6:设计出树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及 理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示 出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题7:采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比。
要求如下:(1)设计构造哈夫曼树的基本函数,以及实现文件压缩和恢复的函数(2)求解出所构造的哈夫曼树的带权路径长度。
(3)运行时的压缩原文件的规模应不小于5K,演示通过调用自己的库函数来实现文件的压缩和恢复功能。
课题8:设计出图结构的相关函数库,以便在程序设计中调用。
要求:(1)包括图结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及 理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题9(校园导航问题):计你的学校的平面图,至少包括10 个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最 短路径)。
课题10:给出一组实验来比较下列排序算法的时间性能:快速排序、堆排序、希尔排序、冒泡排序、归并排序(其它排序也可以作为比较的对象)要求:(1)时间性能包括平均时间性能、最好情况下的时间性能、最差情况下的时间性能等。
(2)实验数据应具有说服力,包括:规模范围要大(如从100 到10000)数据的初始特性类型要多,因而需要具有随机性;实验数据的组数要多,即同一规模的数组要多选几种不同类型的数据来实验。
实验结果要能以清晰的形式给出,如图、表等。
(3)算法所用时间必须是机器时间,也可以包括比较和交换元素的次数。
(4)实验分析及其结果要能以清晰的方式来描述,如数学公式或图表等。
(5)要给出实验的方案及其分析。
课题11:飞机订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。
订票:(订票情况可以存在一个数据文件中,结构自己设定);可以订票,如果该航班已经 无票,可以提供相关可选择航班。
退票: 可退票,退票后修改相关数据文件;客户资料有 姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以 修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;课题12:文章编辑:输入一页文字,程序可以统计出文字、数字、空格的个数(2人)。
静态存储一页文章,每行最多不超过80 个字符,共N 行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
(4)存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
(5)输出形式:a.分行输出用户输入的各行字符;b.分4 行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"c.输出删除某一字符串后的文章。
课题13: 教学计划编制问题设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。
课题14:活期储蓄帐目管理活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:(1) 能比较迅速地找到储户的帐户,以实现存款、取款记账;(2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要课题15:简易文本编辑器。
要求:(1) 具有图形菜单界面;(2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;(3) 可正确存盘、取盘;(4) 正确显示总行数。
课题16:图的遍历和生成树求解实现。
要求:(1) 先任意创建一个图;(2) 图的DFS,BFS 的递归算法的实现(3) 最小生成树(两个算法)的实现,求连通分量的实现(4) 要求用邻接矩阵、邻接表、十字链表多种结构存储实现课题17:宿舍管理查询软件要求:(1)采用交互工作方式建立数据文件(2)数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)(3)查询菜单: (用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询(4)打印任一查询结果(可以连续操作)课题18.图书借阅管理系统主要分为两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);(2)会员管理(增加会员、查询会员、删除会员、借书信息);课题19.二叉排序树的实现用顺序和二叉链表作存储结构(1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;(2)对二叉排序树T作中序遍历,输出结果;(3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;课题20.稀疏矩阵应用要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。
(1)稀疏矩阵的存储(2)稀疏矩阵加法(3)矩阵乘法(4)矩阵转置课题21:树与二叉树的转换的实现。
以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。
课题22:关键路径问题设计一个程序求出完成整项工程至少需要多少时间以及整项工程中的关键活动。
要求:(1)对一个描述工程的AOE网,应判断其是否能够顺利进行(2)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间课题23:哈希表设计与实现设计哈希表实现电话号码查询系统要求:(1)设每个记录有下列数据项:电话号码、用户名、地址(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表(3)采用再哈希法解决冲突(4)查找并显示给定电话号码的记录(5)查找并显示给定用户名的记录(6)在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法(至少两种),考察平均查找长度的变化。