数据结构课程设计题目表_第1页
数据结构课程设计题目表_第2页
数据结构课程设计题目表_第3页
数据结构课程设计题目表_第4页
数据结构课程设计题目表_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

课题1:设计出链表结构的相关函数库,以便在程序设计中调用。要求:

(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。

(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将简单的运行过程以动态方式显示出来。

(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。

课题2:设计出挨次表结构的相关函数库,以便在程序设计中调用。要求:

(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。

(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将简单的运行过程以动态方式显示出来。

(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。

课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。

要求:

(1)所设计的数据结构应尽可能节约存储空间。

(2)程序的运行时间应尽可能少。

课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。

要求:要检查有关运算的条件,并对错误的条件产生报警。

课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。要求:

(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。

(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将简单的运行过程以动态方式显示出来。

(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。

课题6:设计出树结构的相关函数库,以便在程序设计中调用。要求:

(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。

(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将简单的运行过程以动态方式显示出来。

(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。

课题7:选择合适的存储结构表示广义表,并能实现下列运算要求:

(1)用大写字母表示广义表,用小写字母表示原子,并供应设置广义表的值的功能。

(2)取广义表L的表头和表尾的函数head(L)和tail(L)。

(3)能用这两个函数的复合形式求出广义表中的指定元素。

(4)由广义表的字符串形式到广义表的转换函数ListsStr_ToLists_(S);例如Str_ToLists_(“(a,(a,b),c)”)的值为一个广义表。

(5)由广义表到广义表的字符串形式的转换函数char*Lists_To_Str(L)。

(6)最好能设置多个广义表。

课题8:设计程序以实现构造哈夫曼树的哈夫曼算法,要求如下:

(1)可以使用试验工具的有关功能。

(2)要能演示构造过程。

(3)求解出所构造的哈夫曼树的带权路径长度。

课题9:采纳哈夫曼编码思想实现文件的压缩和恢复功能,并供应压缩前后的占用空间之比。

要求:

(1)描述压缩基本符号的选择方法。

(2)运行时的压缩原文件的规模应不小于5K。

(3)供应恢复文件与原文件的相同性对比功能。

课题10:设计出图结构的相关函数库,以便在程序设计中调用。要求:

(1)包括图结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。

(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将简单的运行过程以动态方式显示出来。

(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。

课题11:设计程序完成如下功能:对给定的图结构和起点,产生其全部的深度优先搜寻遍历序列,并给出求解过程的动态演示。

课题12:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的PRIM算法,并给出求解过程的动态演示。

课题13:设计程序完成如下功能:对给定的图结构,实现求解最小生成树的Kruskal算法,并给出求解过程的动态演示。

课题14:设计程序完成如下功能:对给定的网和起点,用PRIM算法的基本思想求解出全部的最小生成树,并给出求解过程的动态演示。

课题15:设计程序完成如下功能:对给定的图结构,用Kruskal算法的基本思想求解出全部的最小生成树,并给出求解过程的动态演示。

课题16:选择合适的结构表示图,在此基础上实现拓扑排序算法。

要求:对所设计的图结构,供应必要的基本功能。

课题17:设计程序完成如下功能:对给定的AOV网,产生全部的拓扑序列,并给出求解过程的动态演示。

课题18:选择合适的结构表示图,在此基础上实现求解最短路径的Dijkstra算法。

要求:对所设计的图结构,供应必要的基本功能。

课题19(校内导航问题):计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

课题20(马的遍历问题):设计程序完成如下要求:在中国象棋棋盘上,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子能按象棋的规章不重复地走过棋盘上的每一位置。

要求:

(1)依次输出所走过的各位置的坐标。

(2)最好能画出棋盘的图形形式,并在其上动态地标注行走过程。

(3)程序能便利地地移植到其它规格的棋盘上。

课题21:在8×8的国际象棋棋盘上,假如在放置若干个马后,使得整个棋盘的任意空位置上所放置的棋子均能被这些马吃掉,则称这组放置为棋盘的一个满掩盖。若去掉满掩盖中的任意一个棋子都会使这组放置不再是满掩盖,则称这一满掩盖为微小满掩盖。设计程序完成如下要求:

要求:

(1)求解一个微小满掩盖。

(2)最好能画出棋盘的图形形式,并在其上动态地演示摸索过程。

(3)程序能便利地地移植到其它规格的棋盘上。

课题22:在中国象棋棋盘上实现上一课题的任务。

要求:除了上一课题的要求外,还要考虑到“别腿”的规定。

课题23:选择合适的数据结构表示B-树,并分别实现B-树的初始化、插入、删除、数据结构的文件存取、图形显示等功能。

本题可分解为五个子课题,要求这些子课题采纳相同的存储结构,并能便利地组成一个完整的程序。

课题24:在一个由m×n个小正方形组成的矩形上,依次用有两个相邻的小正方形大小的矩形(此处所谓相邻是指两个正方形有一条边公用边)不重复地掩盖该矩形区域。请构造出该问题的数学模型,设计算法求解全部可能的掩盖。

课题25(简易五子棋嬉戏):设计程序实现一个人机对弈的简洁的五子棋嬉戏。嬉戏规章如下:在19×19的围棋棋盘的交叉点上,对弈双方轮番放子,最先在棋盘上摆成(按水平、垂直或对角线方向)连续五个子的一方为胜方。

课题26:在表达式“123456789=100”中左边的适当位置插入运算符“+”或“-”,以使等式成立。例如123+45-67+8-9=100。

课题27:有一人要将自己的兔子、蔬菜和狐狸等三件物品运过河。但过河所用的船每次只能装其中的两件,而这三件物品之间又存在肯定的制约关系:兔子不能单独和狐狸以及不能和蔬菜在一起,由于狐狸要吃兔子,兔子也能吃蔬菜。试构造出问题模型,并编程实现这一问题的求解。

课题28:(交通灯问题)多叉路口交通灯的管理问题。通常,

在十字交叉路口只需设红、绿两色的交通灯便可保持正常的交通秩

序,而在多叉路口需设几种颜色的交通灯才能既使车辆相互之间不

碰撞,又能达到车辆的最大流通。假设有一个如图(a)所示的五叉路

口,其中C和E为单行道。在路口有13条可行的通路,其中有的

可以同时通行,如A→B和E→C,而有的不能同时通行,如E→B

和A→D。那么,在路口应如何设置交通灯进行车辆的管理呢?

课题29:(九宫问题)在一个3×3的九宫中有1-8这8个数及一个空格随机地摆放在其中的格子里。如下面左图所示。现在要求实现这样的问题:将该九宫格调整为如下图右图所示的形式。调整的规章是:每次只能将与空格(上、下或左、右)相邻的一个数字平移到空格中。试编程实现这一问题的求解。

23

718

654

课题30:设计一个模拟电梯工作过程的图形演示系统。要求所设计的电梯能符合市场上大多数系统的要求。

12384765课题31:给出一组试验来比较下列排序算法的时间性能:

快速排序、堆排序、希尔排序、冒泡排序、归并排序(其它排序也可以作为比较的对象)

要求:

(1)时间性能包括平均时间性能、最好状况下的时间性能、最差状况下的时间性能等。

(2)试验数据应具有说服力,包括:

规模范围要大(如从100到10000)

数据的初始特性类型要多,因而需要具有随机性;

试验数据的组数要多,即同一规模的数组要多选几种不同类型的数据来试验。

试验结果要能以清楚的形式给出,如图、表等。

(3)算法所用时间必需是机器时间,也可以包括比较和交换元素的次数。

(4)试验分析及其结果要能以清楚的方式来描述,如数学公式或图表等。

(5)要给出试验的方案及其分析。

课题32:实现一个N*M的扫雷嬉戏。

课题33:运动会分数统计:参与运动会有n个学校,学校编号为1……n。竞赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由同学自己设定。(m<=20,n<=20)

功能要求:

1)可以输入各个项目的前三名或前五名的成果;

2)能统计各学校总分;

3)可以按学校编号或名称、学校总分、男女团体总分排序输出;

4)可以按学校编号查询学校某个项目的状况;可以按项目编号查询取得前三或前五名的学校。

5)数据存入文件并能随时查询

6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称

输出形式:有中文提示,各学校分数为整形

界面要求:有合理的提示,每个功能可以设立菜单,依据提示,可以完成相关的功能要求。

存储结构:同学自己依据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最终的上交资料中指明你用到的存储结构;

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

课题34:飞机订票系统任务:通过此系统可以实现如下功能:

录入:可以录入航班状况(数据可以存储在一个数据文件中,数据结构、详细数据自定)。查询:可以查询某个航线的状况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班状况。订票:(订票状况可以存在一个数据文件中,结构自己设定);可以订票,假如该航班已经无票,可以供应相关可选择航班。退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班状况,订单要有编号。修改航班信息:当航班信息转变可以修改航班数据文件

要求:

依据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完胜利能;

课题35:文章编辑:输入一页文字,程序可以统计出文字、数字、空格的个数。

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

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

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

输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章。

课题36:纸牌嬉戏

任务:编号为1-52张牌,正面对上,从第2张开头,以2为基数,是2的倍数的牌翻一次,直到最终一张牌;然后,从第3张开头,以3为基数,是3的倍数的牌翻一次,直到最终一张牌;然后…从第4张开头,以4为基数,是4的倍数的牌翻一次,直到最终一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面对上的牌有哪些?

课题37:学校超市选址问题(带权有向图的中心点)

设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。

课题38:教学方案编制问题

设计要求:针对计算机系本科课程,依据课程之间的依靠关系(如离散数学应在数据结构之前开设)制定课程支配方案,并满意各学期课程数目大致相同。

课题39:设计散列表实现电话号码查找系统。

基本要求:

1)设每个记录有下列数据项:电话号码、用户名、地址;

2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;

3)采纳肯定的方法解决冲突;

4)查找并显示给定电话号码的记录;

5)查找并显示给定用户名的记录。

扩展要求:

1)系统功能的完善;

2)设计不同的散列函数,比较冲突率;

3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

课题40:同学搭配问题。

一班有m个女生,有n个男生(m不等于n),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上。每曲开头时,依次从男生和女生中各出一人配对跳舞,本曲没胜利配对者坐着等待下一曲找舞伴。

请设计一系统模拟动态地显示出上述过程,要求如下:

(1)输出每曲配对状况;

(2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的状况.至少求出K的两个值;

(3)尽量设计出多种算法及程序。

提示:用队列来解决比较便利.

课题41:敢死队问题

有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长打算用轮回数数的方法来打算哪个战士去执行任务。假如前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,任凭从某一个战士开头计数,当数到5时,对应的战士就去执行任务,且此战士不再参与下一轮计数。假如此战士没完成任务,再从下一个战士开头数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。

排长是不情愿去的,假设排长为1号,请你设计一程序,求出从第几号战士开头计数才能让排长最终一个留下来而不去执行任务。

要求:至少采纳两种不同的数据结构的方法实现。

课题42:猴子吃桃子问题

有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。

要求:

1)采纳数组数据结构实现上述求解

2)采纳链数据结构实现上述求解

3)采纳递归实现上述求解

4)可扩展采纳4种以上方法

课题43:活期储蓄帐目管理

活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:

1)能比较快速地找到储户的帐户,以实现存款、取款记账;

2)能比较简洁,快速地实现插入和删除,以实现开户和销户的需要

课题44:设计一个计算机管理系统完成图书管理基本业务。

基本要求:

1)每种书的登记内容包括书号、书名、著、现存量和库存量;

2)对书号建立索引表(线性表)以提高查找效率(索引表采纳树表);

3)系统主要功能如下:

*采编入库:新购一种书,确定书号后,登记到图书帐目表中,假如表中已有,则只将库存量增加;

*借阅:假如一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,转变现存量;

*归还:注销对借阅者的登记,转变该书的现存量。

课题45:程序开头运行时显示一个迷宫地图,迷宫中心有一只老鼠,迷宫的右下方有一个粮仓。嬉戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。

要求:

1)老鼠形象可辨认,可用键盘操纵老鼠上下左

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论