课程设计指导书

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

《数据结构》课程设计课题表

课题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个小正方形组成的矩形上,依次用有两个相邻的小正方形大小的矩形(此处所谓相邻是指两个正方形有一条边公用边)不重复地覆盖该矩形区域。请构造出该问题的数学模型,设计算法求解所有可能的覆盖。

相关文档
最新文档