《数据结构》课程设计课题表课题1:(70分)设计出链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题2:(70分)设计出顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题3:(75分)设计程序以实现任意两个高次多项式的加法和乘法运算。
要求:(1)所设计的数据结构应尽可能节省存储空间。
(2)程序的运行时间应尽可能少。
课题4:(80分)设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
课题5:(70分)设计出二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题6:(75分)设计出树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题7:(75分)选择合适的存储结构表示广义表,并能实现下列运算要求:(1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。
(2)取广义表L的表头和表尾的函数head(L)和tail(L)。
(3)能用这两个函数的复合形式求出广义表中的指定元素。
(4)由广义表的字符串形式到广义表的转换函数Lists Str_ToLists_(S);例如Str_ToLists_(“ (a,(a,b),c)”)的值为一个广义表。
(5)由广义表到广义表的字符串形式的转换函数char * Lists_To_Str(L)。
(6)最好能设置多个广义表。
课题8:(75分)设计程序以实现构造哈夫曼树的哈夫曼算法,要求如下:(1)可以使用实验工具的有关功能。
(2)要能演示构造过程。
(3)求解出所构造的哈夫曼树的带权路径长度。
课题9:(85分)采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比。
要求:(1)描述压缩基本符号的选择方法。
(2)运行时的压缩原文件的规模应不小于5K。
(3)提供恢复文件与原文件的相同性对比功能。
课题10:(75分)设计出图结构的相关函数库,以便在程序设计中调用。
要求:(1)包括图结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题11:(75分)设计程序完成如下功能:对给定的图结构和起点,产生其所有的深度优先搜索遍历序列,并给出求解过程的动态演示。
课题12:(75分)设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的PRIM算法,并给出求解过程的动态演示。
课题13:(75分)设计程序完成如下功能:对给定的图结构,实现求解最小生成树的Kruskal算法,并给出求解过程的动态演示。
课题14:(80分)设计程序完成如下功能:对给定的网和起点,用PRIM算法的基本思想求解出所有的最小生成树,并给出求解过程的动态演示。
课题15:(80分)设计程序完成如下功能:对给定的图结构,用Kruskal算法的基本思想求解出所有的最小生成树,并给出求解过程的动态演示。
课题16:(75分)选择合适的结构表示图,在此基础上实现拓扑排序算法。
要求:对所设计的图结构,提供必要的基本功能。
课题17:(80分)设计程序完成如下功能:对给定的AOV网,产生所有的拓扑序列,并给出求解过程的动态演示。
课题18:(75分)选择合适的结构表示图,在此基础上实现求解最短路径的Dijkstra算法。
要求:对所设计的图结构,提供必要的基本功能。
课题19(校园导航问题)(80分):计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
课题20(马的遍历问题)(80分):设计程序完成如下要求:在中国象棋棋盘上,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子能按象棋的规则不重复地走过棋盘上的每一位置。
要求:(1)依次输出所走过的各位置的坐标。
(2)最好能画出棋盘的图形形式,并在其上动态地标注行走过程。
(3)程序能方便地地移植到其它规格的棋盘上。
课题21:(80分)在8×8的国际象棋棋盘上,如果在放置若干个马后,使得整个棋盘的任意空位置上所放置的棋子均能被这些马吃掉,则称这组放置为棋盘的一个满覆盖。
若去掉满覆盖中的任意一个棋子都会使这组放置不再是满覆盖,则称这一满覆盖为极小满覆盖。
设计程序完成如下要求:要求:(1)求解一个极小满覆盖。
(2)最好能画出棋盘的图形形式,并在其上动态地演示试探过程。
(3)程序能方便地地移植到其它规格的棋盘上。
课题22:(80分)在中国象棋棋盘上实现上一课题的任务。
要求:除了上一课题的要求外,还要考虑到“别腿”的规定。
课题23:(85分)选择合适的数据结构表示B-树,并分别实现B-树的初始化、插入、删除、数据结构的文件存取、图形显示等功能。
本题可分解为五个子课题,要求这些子课题采用相同的存储结构,并能方便地组成一个完整的程序。
课题24:(85分)在一个由m×n个小正方形组成的矩形上,依次用有两个相邻的小正方形大小的矩形(此处所谓相邻是指两个正方形有一条边公用边)不重复地覆盖该矩形区域。
请构造出该问题的数学模型,设计算法求解所有可能的覆盖。
课题25(简易五子棋游戏):(75分)设计程序实现一个人机对弈的简单的五子棋游戏。
游戏规则如下:在19×19的围棋棋盘的交叉点上,对弈双方轮流放子,最先在棋盘上摆成(按水平、垂直或对角线方向)连续五个子的一方为胜方。
课题26:(70分)在表达式“123456789=100”中左边的适当位置插入运算符“+”或“-”,以使等式成立。
例如123+45-67+8-9=100。
课题27:(70分)有一人要将自己的兔子、蔬菜和狐狸等三件物品运过河。
但过河所用的船每次只能装其中的两件,而这三件物品之间又存在一定的制约关系:兔子不能单独和狐狸以及不能和蔬菜在一起,因为狐狸要吃兔子,兔子也能吃蔬菜。
试构造出问题模型,并编程实现这一问题的求解。
课题28:(80分)(交通灯问题)多叉路口交通灯的管理问题。
通常,在十字交叉路口只需设红、绿两色的交通灯便可保持正常的交通秩序,而在多叉路口需设几种颜色的交通灯才能既使车辆相互之间不碰撞,又能达到车辆的最大流通。
假设有一个如图(a)所示的五叉路口,其中C和E为单行道。
在路口有13条可行的通路,其中有的可以同时通行,如A→B 和E→C,而有的不能同时通行,如E→B和A→D。
那么,在路口应如何设置交通灯进行车辆的管理呢?《数据结构》课程设计课题表课题1:(70分)设计出链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题2:(70分)设计出顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题3:(75分)设计程序以实现任意两个高次多项式的加法和乘法运算。
要求:(1)所设计的数据结构应尽可能节省存储空间。
(2)程序的运行时间应尽可能少。
课题4:(80分)设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
课题5:(70分)设计出二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题6:(75分)设计出树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题7:(75分)选择合适的存储结构表示广义表,并能实现下列运算要求:(1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。
(2)取广义表L的表头和表尾的函数head(L)和tail(L)。
(3)能用这两个函数的复合形式求出广义表中的指定元素。
(4)由广义表的字符串形式到广义表的转换函数Lists Str_ToLists_(S);例如Str_ToLists_(“ (a,(a,b),c)”)的值为一个广义表。
(5)由广义表到广义表的字符串形式的转换函数char * Lists_To_Str(L)。
(6)最好能设置多个广义表。
课题8:(75分)设计程序以实现构造哈夫曼树的哈夫曼算法,要求如下:(1)可以使用实验工具的有关功能。