- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10级计算机数据结构和算法分析课程设计题目
2010级计算机《数据结构与算法分析课程设计》题目
图的相关操作
键盘输入数据,建立一个有向图的邻接表,并输出。
建立一个有向图的十字链表。
在有向图的邻接表的基础上计算各顶点的度,并输出。
以有向图的邻接表为基础实现输出它的拓扑排序序列。
采用邻接矩阵存储一个有向图,求单源点到其它顶点的最短路径。
采用邻接表存储实现无向图的深度优先非递归遍历。
采用邻接表存储实现无向图的广度优先遍历。
采用邻接矩阵存储实现无向图的最小生成树的Prim算法。
在主函数中设计一个简单的菜单,分别调试上述算法。
为计算机专业设计教学计划:4个学年,每学年2个学期,开设50门课程,每学期所开课程门数尽量均衡,课程的安排必须满足先修关系。
二叉树的常见操作
输入字符序列,建立二叉链表。
中序遍历二叉树:递归算法。
中序遍历二叉树:非递归算法。(最好也能实现先序,后序非递归算法)
求二叉树的高度 。
求二叉树的叶子个数。
将二叉链表视为森林的孩子兄弟链表,计算森林中叶子个数。
建立中序线索二叉树,并实现中序遍历。
借助队列实现二叉树的层次遍历。
在主函数中设计一个简单的菜单,分别调试上述算法。
为N个权值设计哈夫曼编码。
编写一个五子棋的游戏程序:实现人与人对下的功能,并且有棋盘显示,每下一步均在棋盘上有状态显示。
试设计一个航空客运定票系统。基本要求如下:
每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
系统能实现的操作和功能如下:
1) 查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
2) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。若需要,可登记排队候补;
3) 承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
实现提示:两个客户名单需分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且为了插入和删除方便,应以链表作为存储结构。由于预约人数无法预计,队列也应以链表作为存储结构。
查找的有关操作
建立一个有序表,采用折半查找实现某一已知的关键字的查找。
随机产生一组关键字,利用二叉排序树的插入算法建立二叉排序树,然后删除某一指定关键字元素。
建立AVL树并实现删除某一指定关键字元素。
已知散列函数为H(key)=key%p(p为自定的常数),冲突处理方法分别为线性探测法、链地址法实现散列表的建立
线性表的操作
要求各个功能分别用顺序表和线性链表实现。
创建一个线性表,并对其进行遍历。
编写在非递减有序表中插入一个元素使表元素仍有序的函数,并利用该函数建立一个非递减有序表。
利用上述函数建立两个非递减有序表,并实现两个有序表的有序归并。
实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等,并能够实现将数据存储到文件中)。
采用线性链表实现一元多项式的存储并实现两个多项式相加并输出结果。
一个国家发行n种不同面值的邮票,并假定每封信上至多只能贴m张邮票。对于给定的m、n、和这n种不同的面值,写一算法求出邮资从1开始在增量为1的情况下可能获得的最大连续区域及获得此区域的各种可能面值的集合。
例1:n=2;m=4;邮票面值为1,4;邮资最大连续区域为10。
例2:n=4;m=5;邮票面值为1,4,12,21;邮资最大连续区域为71。
钱币兑零问题:某国家有n种面值的硬币,硬币的最小面值是1。给出一定数额的纸币X(x100),使用动态规划方法,设计一个将X兑换成相同数额硬币且使用最少硬币的方法。
例:硬币面值分别为:50分,30分,8分,5分,1分五种,纸币金额为66分,输出:50*1,8*2,共三枚硬币;纸币金额为65分,则输出:30*2,5*1,共三枚硬币。
如果一个无向简单图G=V,E的所有顶点能划分成两个非空不交顶点集V1和V2,使得对于图中的任意边e都有:e的两个端点分别属于V1和V2,则称G为二部图。如下例左图就是二部图,它可画成右图形式。
fed
f
e
d
c
b
a
设计一个算法,读入一个无向简单图的邻接矩阵,然后判断其是不是二部图。
残缺棋盘问题:一个有2k×2k(k=2)个方格的棋盘,其中有一个方格残缺。要求用L形三格板(如图a)覆盖残缺棋盘,任意两个三格板不能重叠,也不能覆盖残缺方格,但必须覆盖其他所有的方格。图b
文档评论(0)