首页 数据结构课程设计题目要求

数据结构课程设计题目要求

举报
开通vip

数据结构课程设计题目要求Nonkey Jiang 计科12数据结构课程设计 题目汇总 计算机科学与技术系 目录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc373243820" 1. 运动会分数统计(限1 人完成) 2 HYPERLINK \l "_Toc373243821" 2. 文章编辑(限1 人完成) 2 HYPERLINK \l "_Toc373243822" 3. 宿舍管理查询软件(限1 人完成) 3 HYPERLINK \l "_Toc373243823" 4. 学校超市选址问题(带权有向图...

数据结构课程设计题目要求
Nonkey Jiang 计科12数据结构课程设计 题目汇总 计算机科学与技术系 目录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc373243820" 1. 运动会分数统计(限1 人完成) 2 HYPERLINK \l "_Toc373243821" 2. 文章编辑(限1 人完成) 2 HYPERLINK \l "_Toc373243822" 3. 宿舍管理查询软件(限1 人完成) 3 HYPERLINK \l "_Toc373243823" 4. 学校超市选址问题(带权有向图的中心点)(限1 人完成) 3 HYPERLINK \l "_Toc373243824" 5. 活期储蓄帐目管理(限1 人完成) 3 HYPERLINK \l "_Toc373243825" 6. 二叉排序树的实现(限1 人完成) 3 HYPERLINK \l "_Toc373243826" 7. 通讯录的制作(限1 人完成) 4 HYPERLINK \l "_Toc373243827" 8. 哈夫曼编码/译码器(限2 人完成) 4 HYPERLINK \l "_Toc373243828" 9. 图书管理系统(限1 人完成) 5 HYPERLINK \l "_Toc373243829" 10. 散列表的设计与实现(限1 人完成) 5 HYPERLINK \l "_Toc373243830" 11. 走迷宫游戏(限2人完成) 6 HYPERLINK \l "_Toc373243831" 12. 顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。(限1 人完成) 6 HYPERLINK \l "_Toc373243832" 13. 利用栈求表达式的值,可供小学生作业,并能给出分数。(限1 人完成) 6 HYPERLINK \l "_Toc373243833" 14. 二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。(限1 人完成) 7 HYPERLINK \l "_Toc373243834" 15. 学生搭配问题(限1 人完成) 7 HYPERLINK \l "_Toc373243835" 16. 敢死队问题(限1 人完成) 7 HYPERLINK \l "_Toc373243836" 17. 数制转换问题(限1 人完成) 8 HYPERLINK \l "_Toc373243837" 18. 排序综合(限1 人完成) 8 HYPERLINK \l "_Toc373243838" 19. 学生成绩管理系统(限1 人完成) 8 HYPERLINK \l "_Toc373243839" 20. 图的遍历和生成树求解实现(限1 人完成) 9 HYPERLINK \l "_Toc373243840" 21. 树的应用(限1 人完成) 9 HYPERLINK \l "_Toc373243841" 22. 排序算法比较 9 HYPERLINK \l "_Toc373243842" 23. 二叉树的遍历 10 HYPERLINK \l "_Toc373243843" 24. 链表操作 10 HYPERLINK \l "_Toc373243844" 25. 商人过河 10 HYPERLINK \l "_Toc373243845" 26. 输油管道流量安排 11 HYPERLINK \l "_Toc373243846" 27. 双向链表的操作 11 HYPERLINK \l "_Toc373243847" 28. 循环链表的操作 12 HYPERLINK \l "_Toc373243848" 29. 实现两个链表的合并 12 HYPERLINK \l "_Toc373243849" 30. 字符串的操作 12 HYPERLINK \l "_Toc373243850" 31. 稀疏矩阵的操作 13 HYPERLINK \l "_Toc373243851" 32. 哈夫曼树与哈夫曼码 13 HYPERLINK \l "_Toc373243852" 33. 完全二叉数操作演示 13 HYPERLINK \l "_Toc373243853" 34. 二叉树用二叉链表表示 14 HYPERLINK \l "_Toc373243854" 35. 线索二叉树 14 HYPERLINK \l "_Toc373243855" 36. 二叉排序树 14 HYPERLINK \l "_Toc373243856" 37. 二叉排序树和平衡二叉树 14 HYPERLINK \l "_Toc373243857" 38. 识别广义表的“头”或“尾”的演示 15 HYPERLINK \l "_Toc373243858" 39. 二叉树操作 15 HYPERLINK \l "_Toc373243859" 40. 一元多项式运算 15 HYPERLINK \l "_Toc373243860" 41. 二叉树操作 15 HYPERLINK \l "_Toc373243861" 42. 图的遍历和生成树求解实现 16 HYPERLINK \l "_Toc373243862" 43. 图的遍历和生成树求解实现 16 HYPERLINK \l "_Toc373243863" 44. 树的应用 16 HYPERLINK \l "_Toc373243864" 45. 树的应用 16 HYPERLINK \l "_Toc373243865" 46. 后缀表达式求值 17 HYPERLINK \l "_Toc373243866" 47. 飞机订票系统(限1 人完成) 17 HYPERLINK \l "_Toc373243867" 48. 扑克牌游戏 18 HYPERLINK \l "_Toc373243868" 49. 彩票游戏 18 HYPERLINK \l "_Toc373243869" 50. 销售管理系统 18 HYPERLINK \l "_Toc373243870" 51. 通信录管理系统 19 HYPERLINK \l "_Toc373243871" 52. 学生管理系统 20 HYPERLINK \l "_Toc373243872" 53. 车票管理系统 21 HYPERLINK \l "_Toc373243873" 54. 单链表(不附加头结点,传地址) 22 HYPERLINK \l "_Toc373243874" 55. 单链表(附加头结点,传地址) 22 HYPERLINK \l "_Toc373243875" 56. 循环单链表(附加头结点,传地址) 23 HYPERLINK \l "_Toc373243876" 57. 循环单链表(附加头结点,引用) 24 HYPERLINK \l "_Toc373243877" 58. 对顶顺序双栈(动态,传地址) 25 HYPERLINK \l "_Toc373243878" 59. 双端操作顺序表(静态,传地址) 25 HYPERLINK \l "_Toc373243879" 60. 顺序串(附加串长,静态,传地址) 26 HYPERLINK \l "_Toc373243880" 61. 块链串(附加结束标志,内嵌串,引用) 27 HYPERLINK \l "_Toc373243881" 62. 广义表(内嵌整数,引用) 28 HYPERLINK \l "_Toc373243882" 63. 广义表(外置实数,传地址) 29 HYPERLINK \l "_Toc373243883" 64. 二叉树(完全,动态,引用) 30 HYPERLINK \l "_Toc373243884" 65. 二叉树(中序,前序,顺序,静态,引用) 31 HYPERLINK \l "_Toc373243885" 66. 树(中序,前序,顺序,静态,传地址) 31 HYPERLINK \l "_Toc373243886" 67. 无向图(顶点,关系,顺序,静态,引用) 32 HYPERLINK \l "_Toc373243887" 68. 无向图(顶点,关系,链表,引用) 33 HYPERLINK \l "_Toc373243888" 69. 排序(单链表,传地址) 34 HYPERLINK \l "_Toc373243889" 70. 排序(顺序表,静态,引用) 34 HYPERLINK \l "_Toc373243890" 71. 昂贵的聘礼 35 HYPERLINK \l "_Toc373243891" 72. 精确幂运算 36 运动会分数统计(限1 人完成)   任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)   功能要求: 可以输入各个项目的前三名或前五名的成绩; 能统计各学校总分, 可以按学校编号或名称、学校总分、男女团体总分排序输出; 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 数据存入文件并能随时查询 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 :输入数据形式和范围:可以输入学校的名称,运动项目的名称   输出形式:有中文提示,各学校分数为整形   界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 文章编辑(限1 人完成)   功能:输入一页文字,程序可以统计出文字、数字、空格的个数。   静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。   存储结构使用线性表,分别用几个子函数实现相应的功能;   输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章; 宿舍管理查询软件(限1 人完成) 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: 采用交互工作方式 建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种) 查询菜单: (用二分查找实现以下操作) 按姓名查询 按学号查询 按房号查询 打印任一查询结果(可以连续操作) 学校超市选址问题(带权有向图的中心点)(限1 人完成) 设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。 活期储蓄帐目管理(限1 人完成) 活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求: 能比较迅速地找到储户的帐户,以实现存款、取款记账; 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。 二叉排序树的实现(限1 人完成) 用顺序和二叉链表作存储结构 以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T; 对二叉排序树T作中序遍历,输出结果; 输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”; 通讯录的制作(限1 人完成) 设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。 设计内容:本系统应完成一下几方面的功能: 输入信息——enter(); 显示信息———display( ); 查找以姓名作为关键字 ———search( ); 删除信息———delete( ); 存盘———save ( ); 装入———load( ) ; 设计要求: 每条信息至包含 :姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项 作为一个完整的系统,应具有友好的界面和较强的容错能力 上机能正常运行,并写出课程设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 哈夫曼编码/译码器(限2 人完成) 【问题描述】 设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。 【基本要求】 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) 分别采用动态和静态存储结构 初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 编码:利用建好的哈夫曼树生成哈夫曼编码; 输出编码; 设字符集及频度如下表: 字符 空格 A B C D E F G H I J K L M 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 字符 N O P Q R S T U V W X Y Z 频度 57 63 15 1 48 51 80 23 8 18 1 16 1 【进一步完成内容】 译码功能; 显示哈夫曼树; 界面设计的优化。 图书管理系统(限1 人完成) 【问题描述】 设计一个计算机管理系统完成图书管理基本业务。 【基本要求】 每种书的登记内容包括书号、书名、著作者、现存量和库存量; 对书号建立索引表(线性表)以提高查找效率; 系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。 散列表的设计与实现(限1 人完成) 【问题描述】 设计散列表实现电话号码查找系统。 【基本要求】 设每个 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 有下列数据项:电话号码、用户名、地址; 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表; 采用一定的方法解决冲突; 查找并显示给定电话号码的记录; 查找并显示给定用户名的记录。 【进一步完成内容】 系统功能的完善; 设计不同的散列函数,比较冲突率; 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。 走迷宫游戏(限2人完成) 程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。 要求: 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动; 迷宫的墙足够结实,老鼠不能穿墙而过; 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败; 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙; 找出走出迷宫的所有路径,以及最短路径。 利用序列化功能实现迷宫地图文件的存盘和读出等功能 顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。(限1 人完成) 设有一元多项式Am(x)和Bn(x). Am(x)=A0+A1x1+A2x2+A3x3+… +Amxm Bn(x)=B0+B1x1+B2x2+B3x3+… +Bnxn 请实现求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。 要求: 首先判定多项式是否稀疏 分别采用顺序和动态存储结构实现; 结果M(x)中无重复阶项和无零系数项; 要求输出结果的升幂和降幂两种排列情况 利用栈求表达式的值,可供小学生作业,并能给出分数。(限1 人完成) 要求:建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。 二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。(限1 人完成) 要求:遍历的内容应是千姿百态的。 树与二叉树的转换的实现。以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。 学生搭配问题(限1 人完成) 一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程,要求如下: 输出每曲配对情况 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值. 尽量设计出多种算法及程序,可视情况适当加分 提示:用队列来解决比较方便. 敢死队问题(限1 人完成) 有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。 排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。 要求:至少采用两种不同的数据结构的方法实现。如果采用三种以上的方法者,可加分。 数制转换问题(限1 人完成) 任意给定一个M进制的数x ,请实现如下要求 求出此数x的10进制值(用MD表示) 实现对x向任意的一个非M进制的数的转换。 至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。 排序综合(限1 人完成) 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求: 至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 如果采用4种或4种以上的方法者,可适当加分。 学生成绩管理系统(限1 人完成) 现有学生成绩信息文件1(1.txt),内容如下 姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 03 68 82 56 王露 04 56 45 77 陈东明 05 67 38 47 …. .. .. .. … 学生成绩信息文件2(2.txt),内容如下: 姓名 学号 语文 数学 英语 陈果 31 57 68 82 李华明 32 88 90 68 张明东 33 48 42 56 李明国 34 50 45 87 陈道亮 35 47 58 77 …. .. .. .. … 试编写一管理系统,要求如下: 实现对两个文件数据进行合并,生成新文件3.txt 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现) 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现) 要求使用结构体,链或数组等实现上述要求. 采用多种方法且算法正确者,可适当加分. 图的遍历和生成树求解实现(限1 人完成) 要求: 先任意创建一个图; 图的DFS,BFS的递归和非递归算法的实现 最小生成树(两个算法)的实现,求连通分量的实现 要求用邻接矩阵、邻接表、十字链表多种结构存储实现 树的应用(限1 人完成) 要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。 排序算法比较 设计目的 掌握各种排序的基本思想。 掌握各种排序方法的算法实现。 掌握各种排序方法的优劣分析及花费的时间的计算。 掌握各种排序方法所适应的不同场合。 设计内容和要求 利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。 ------------------------------------------------------------------------------------------------------- 二叉树的遍历 设计目的 1.掌握二叉树的二叉链表存贮结构。 2.掌握栈的基本运算实现。 3.掌握二叉树的先序、中序、后序三种遍历的算法实现。 二、设计内容和要求 对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。 ------------------------------------------------------------------------------------------------------- 链表操作 设计目的 1.掌握线性链表的建立。 2.掌握线性链表的基本操作。 二、设计内容和要求 利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。 ------------------------------------------------------------------------------------------------------- 商人过河 设计目的 1.掌握多维向量的建立和使用。 2.掌握穷举法在链表中的基本操作。 二、设计内容和要求 利用二维向量保存商人各种信息,河两岸信息以链表方式保存。对问题:有n个商人k个仆人过河,船上最多有m个人,两岸上有任意一岸仆人数多于商人数商人都会死,问应如何安排才能使商人顺利过河,若不能则不打印出全过程:建议开始值n=3,k=3,m=2。 ------------------------------------------------------------------------------------------------------- 输油管道流量安排 设计目的 1.掌握图的基本运算和应用。 二、设计内容和要求 某公司预计今年在某地区设立一个输油网络,其管制站及输油管的分布如下图,应如何制定各输油管的流量才能使网络总流量达到最大。 双向链表的操作 设计目的 1.掌握双向链表的建立。 2.掌握双向链表的基本操作。 设计内容和要求 建立双向链表L,含n个结点且按整数值递增排列的(输入任意); 删除双向链表中多余的值相同的元素 求出的长度 将双向链表就地逆置 向双向链表中插入值,插入后双向链表仍有序 循环链表的操作 设计目的 1.掌握循环线性链表的建立。 2.掌握循环线性链表的基本操作。 二、设计内容和要求 1.用含有各种字符的串,建立循环单链表,每个结点含有一个字符 2. 将循环单链表分解为三个单链表,分别是字母、数字和其他字符且按ascii值有序 3.能删除指定单链表中指定位子或指定值的元素 4.求出的长度 实现两个链表的合并 设计目的 1.掌握线性链表的建立。 2.掌握线性链表的基本操作。 设计内容和要求 建立两个链表A和B,链表元素个数分别为m和n个。 假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它们合并成一个线形表C,使得: 当m>=n时,C=x1,y1,x2,y2,…xn,yn,…,xm 当n>m时,C=y1,x1,y2,x2,…ym,xm,…,yn 输出线形表C 用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。 能删除指定单链表中指定位子或指定值的元素 ---------------------------------------------------------------------------------------------------------------------- 字符串的操作 设计目的 1.掌握顺序表的建立。 2.掌握顺序表的基本操作。 二、设计内容和要求 字符串采用数组存储,建立两个字符串String1和String2。输出两个字符串。 将字符串String2的头n个字符添加到String1的尾部。输出结果。 查找串String3在串String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上。输出结果。 求任意子字符串SUBSTR及删除子字符串。 ------------------------------------------------------------------------------------------------------- 稀疏矩阵的操作 设计目的 1.掌握多维数组的逻辑结构和存储结构。 2.掌握稀疏矩阵的压缩存储及基本操作。 二、设计内容和要求 稀疏矩阵采用三元组表示,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C。 求出A的转置矩阵D,输出D(用两种方法实现,原始算法和改进的算法)。 求两个稀疏矩阵A和B的相乘矩阵E,并输出E。 ------------------------------------------------------------------------------------------------------- 哈夫曼树与哈夫曼码 设计目的 1.掌握哈夫曼树的建树原理 2. 掌握哈夫曼树与哈夫曼码逻辑结构和存储结构。 3.掌握哈夫曼树与哈夫曼码的基本操作。 二、设计内容和要求 1.输入一个文本,统计各字符出现的频度,输出结果 2.使用二叉链表或三叉链表作存贮结构,构造哈夫曼树 3.确定和输出各字符的哈夫曼码 4.输入一个由0和1组成的代码序列,翻译并输出与之对应的文体,若最后的代码子序列不能译为文本,则输出相关信息 ------------------------------------------------------------------------------------------------------- 完全二叉数操作演示 基本要求: (1)创建完全二叉树(用顺序方式存储) (2)求二叉树的深度和叶子结点数 (3)实现二叉树的前序、中序、后序和层次遍历。 (4)查找给定结点的双亲、左右孩子。 二叉树用二叉链表表示 基本要求: 实现二叉树的建立、前序(非递归)、中序和层次遍历; 求二叉树高度、结点数、度为1的结点数和叶子结点数; 插入结点到指定位置、删除指定结点; 复制二叉树且将复制后所有结点的左右子树交换。 线索二叉树 基本要求: 建立中序线索二叉树,并且遍历; 求中序线索二叉树上已知结点中序的前驱和后继; 插入结点到指定位置;试着删除指定结点 4. 求中序线索二叉树上已知结点在先序下的后继和在后序下的前驱; 二叉排序树 基本要求: 1.输入一个数列L,生成一棵二叉排序树T 2.对二叉排序树T作递增、递减输出 3. 计算二叉排序树T的平均查找长度,输出结果 4.在二叉排序树T上删除指定结点 5.输出二叉排序树T中指定结点的平衡因子 二叉排序树和平衡二叉树 输入一个数列L,生成一棵二叉排序树T 对二叉排序树T作中序遍历,输出结果 计算二叉排序树T的平均查找长度,输出结果 判断二叉排序树T是否为平衡二叉树,输出信息“OK”|“NO” 再使用上述数列L,生成平衡的二叉排序树BT,每当插入新元素发现当前的二叉排序树BT不是平衡的二叉排序树,则立即旋转处理为新的平衡二叉排序树。 识别广义表的“头”或“尾”的演示 基本要求: 1. 允许分多行输入一个广义表,建立广义表的存储结构 2.求广义表的头、尾 3. 求广义表的长度和深度 4. 广义表的复制,广义表形式输出 二叉树操作 基本要求: 已知二叉树的前序、中序序列,恢复此二叉树; 求二叉树高度、分支结点数和叶子结点数; 插入结点到指定位置、删除指定结点; 将二叉树中所有结点的左右子树交换; 对二叉树进行层序、非递归中序遍历。 一元多项式运算 一个一元多项式可以看作由若干个一元单项式按降幂排列成的线性表。请按下述要求编写程序。 对输入的一元多项式进行求导,并输出求导的结果。 对输入的两个一元多项式进行求和,并输出求导的结果。 对输入的两个一元多项式进行求积,并输出求导的结果。 二叉树操作 基本要求: 已知二叉树的后序、中序序列,恢复此二叉树; 求二叉树高度、分支结点数和叶子结点数; 3.插入结点到指定位置、删除指定结点; 4.将二叉树中所有结点的左右子树交换。 5.对二叉树进行层序、非递归中序遍历。 图的遍历和生成树求解实现 要求: 用邻接矩阵创建一个无向网; 对无向网进行DFS,BFS遍历; 求最小生成树(两个算法中任一个)的实现; 求连通分量 图的遍历和生成树求解实现 要求: 用邻接表创建一个无向网; 对无向网进行DFS,BFS遍历; 求最小生成树(两个算法中任一个)的实现; 求连通分量 树的应用 要求: 树的建立(用双亲表示法或双亲孩子链表表示法) 实现树与二叉树的转换 以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现 树的深度和叶子结点个数。 树的应用 要求: 建立二叉链表表示的二叉树 实现二叉树与树的转换(树用双亲表示法或双亲孩子链表表示法) 以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现 树的高度和叶子结点个数。 后缀表达式求值 任务要求:使用模板设计后缀表达式求值,模拟一个计算器操作。 任务说明: 假设对整数进行四则运算,式32*(6-15)+35就是一个表达式。在这个表达式中,所有运算符都出现在它的两个操作数中间,所以称 “中缀表达式”。由表达方法可见,这种表达式需要使用括号。 处理系统通常需要将这个表达式转换成不需要括号的表达方法,上式的等价表达如下: 32 6 15 - * 35 + 这种表达式方式称为“后缀表达”,它不再需要括号,每个运算符都出现在其操作数的后面。 使用一个存放操作数的栈,求值过程顺序扫描后缀表达式,每次遇到操作数便将它压入堆栈;遇到运算符,则从栈中弹出两个操作数进行计算,然后再把结果压入堆栈。这样,等到扫描结束时,留在栈顶的整数就是所求表达式的值。 实际上,后缀表达式求值时,与数据类型有关系,所以使用模板来实现。 飞机订票系统(限1 人完成)   任务:通过此系统可以实现如下功能:   录入:   可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)   查询:   可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);   可以输入起飞抵达城市,查询飞机航班情况;   订票:(订票情况可以存在一个数据文件中,结构自己设定)   可以订票,如果该航班已经无票,可以提供相关可选择航班;   退票: 可退票,退票后修改相关数据文件;   客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。   修改航班信息:   当航班信息改变可以修改航班数据文件   要求:   根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 扑克牌游戏 程序说明: 完成两个功能:洗牌和对抗。 程序设计要求: 增加大小王。 将洗完的牌平均分成4组,并完成将花色相同的牌按大小排列起来;根据牌点的大小将牌排列起来。 4组牌可以依次删除指定的牌,如红桃5、黑桃A等,并将余牌显示,即模仿4个人依次出牌。 将双方出的牌扩大为两张,若出现一组对子,则对子牌点任何单牌,若双方均为对子,则比较牌点之和。 在一开始设置总赌资,根据输赢及下注的多少统计赌资,同时统计输赢的结果。 出牌时,先显示自己的牌点,然后根据自己的牌来确定是否加注,即拿到好牌时,可继续加注。 设计程序,使高级玩家可以利用输入一键(如H键),然后输入密码来看自己的下一张牌,如不好,则可以再要,直到满意为止。 可以按任意键(如C)来查看计算机的牌,然后决定自己的赌注。 彩票游戏 程序说明: 模拟体彩和福彩的投彩及开奖过程。 程序设计要求: 对于福彩类部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。 福彩的中奖号码与其数字的顺序无关。 体彩的中奖等级分成特等奖(数字全部吻合),一等奖(6个连续的数字吻合),二等奖(5个连续的数字吻合),三等奖(4个连续的数字吻合),安慰奖(2个连续的数字吻合)。 在用户类中有资金成员,可以一次下很多注(受资金限制),每注2元,同时设定博彩的奖励 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf ,将中奖的奖金加入资金账户,具体的各个等级的奖金金额自定。 高级玩家可以查看计算机产生的随机数(需输入密码),然后据此下注,只赢不输)。 销售管理系统   某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:  1)销售员的代号  2)产品的代号  3)这种产品的当天的销售额    每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。  1)计算上个月每个人每种产品的销售额。  2)按销售额对销售员进行排序,输出排序结果(销售员代号)  3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)  4)输出统计 报表 企业所得税申报表下载财务会计报表下载斯维尔报表下载外贸周报表下载关联申报表下载                                销售统计报表                               产品代号                 销售之和  销售员代号            1     2     3     4     5         1     2     3     4  每种产品之和                                              总和  通信录管理系统 用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 功能要求 查看功能:选择此功能时,列出下列三类选择。 A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和电话号码) 增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如 杨春 13589664454 商务类 Chuny@126.C++om 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 (二)其它要求: (1) 只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读 (2) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (3) 建议使用结构和链表等数据结构 (4) 学生可自动增加新功能模块(视情况可另外加分) (5)写出课程设计报告,具体要求见相关说明文档 学生管理系统 使用下面的数据,用C/C++设计一个简单的学籍管理系统,实现出最基本的功能。 学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成 学号 姓名 性别 宿舍号码 电话号码 01 张成成 男 501 87732111 02 李成华 女 101 87723112 03 王成凤 女 101 87723112 04 张明明 男 502 87734333 05 陈东 男 501 87732111 06 李果 男 502 87734333 07 张园园 女 102 87756122 … …. .. … ……….. 学生成绩基本信息文件(B.TXT)及其内容: 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 01 B03 高等数学 4 45 -1 88 02 C01 VF 3 65 76 66 … …. ………. .. .. … 功能要求及说明: (1) 数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% . 实得学分的计算: 采用等级学分制. 综合成绩在90-100之间 ,应得学分=学分*100% 综合成绩在80-90之间 ,应得学分=学分*80% 综合成绩在70-80之间 ,应得学分=学分*75% 综合成绩在60-70之间 ,应得学分=学分*60% 综合成绩在60以下 ,应得学分=学分*0% (2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生基本情况查询: A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。 A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。 B:成绩查询: B1:输入一个学号时,查询出此生的所有课程情况,格式如下: 学 号:xx 姓 名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx … … … … ……… … … 共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 (二)其它要求: (1) 只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读 (2) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (3) 学生可自动增加新功能模块(视情况可另外加分) (4)写出课程设计报告,具体要求见相关说明文档 车票管理系统 一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数 1 8:00 郫县 广汉 2 45 30 2 6:30 郫县 成都 0.5 40 40 3 7:00 郫县 成都 0.5 40 20 4 10:00 郫县 成都 0.5 40 2 … (一)功能要求:用C/C++设计一系统,能提供下列服务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 (3)查询路线:可按班次号查询 ,可按终点站查询 (4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求: (1) 只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读 (2) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (3) 学生可自动增加新功能模块(视情况可另外加分) (4)写出课程设计报告,具体要求见相关说明文档 单链表(不附加头结点,传地址) 一、题目 实现不附加头结点单链表的基本操作:输出、求表长、取元素、查找、替换、插入、删除、清空。 要求:①对于需要回传的参数,把实参的地址传给形传;②能在TC2环境下执行。 二、概要设计 1.存储结构 L data next data next data next — → — → — → … — → 0 typedef struct node{ datatype data;/*数据域*/ struct node *next;/*指针域*/ }LNode,*LinkList;/*结点及结点的地址*/ 2.基本操作 ⑴void Output(LinkList L)——输出。 ⑵void Length(LinkList L,int *i)——求表长。 ⑶void Get(LinkList L,int i,LinkList p)——取元素。 ⑷void Locate(LinkList L,datatype x,LinkList p)——查找。 ⑸void Replace1(LinkList L,int i,datatype x)——替换。 ⑹void Replace2(LinkList L,datatype x,datatype y)——替换。 ⑺void Insert1(LinkList *L,int i,datatype x)——插入。 ⑻void Insert2(LinkList *L,datatype x,datatype y)——插入。 ⑼void Delete1(LinkList *L,int i)——删除。 ⑽void Delete2(LinkList *L,datatype x)——删除。 ⑾void Clear(LinkList *L)——清空。 三、详细设计 四、测试结果 五、总结 单链表(附加头结点,传地址) 一、题目 实现附加头结点单链表的基本操作:创建空表、输出、求表长、取元素、查找、替换、插入、删除、清空。 要求:①对于需要回传的参数,把实参的地址传给形传;②能在TC2环境下执行。 二、概要设计 1.存储结构 L data next data next data next data next — → 空闲 — → — → — → … — → 0 typedef struct node{ datatype data;/*数据域*/ struct node *next;/*指针域*/ }LNode,*LinkList;/*结点及结点的地址*/ 2.基本操作 ⑴void Output(LinkList L)——输出。 ⑵void Length(LinkList L,int *i)——求表长。 ⑶void Get(LinkList L,int i,LinkList p)——取元素。 ⑷void Locate(LinkList L,datatype x,LinkList p)——查找。 ⑸void Replace1(LinkList L,int i,datatype x)——替换。 ⑹void Replace2(LinkList L,datatype x,datatype y)——替换。 ⑺void Insert1(LinkList L,int i,datatype x)——插入。 ⑻void Insert2(LinkList L,datatype x,datatype y)——插入。 ⑼void Delete1(LinkList L,int i)——删除。 ⑽void Delete2(LinkList L,datatype x)——删除。 ⑾void Clear(LinkList L)——清空。 ⑿void Init(LinkList *L)——创建空表。 三、详细设计 四、测试结果 五、总结 循环单链表(附加头结点,传地址) 一、题目 实现附加头结点循环单链表的基本操作:创建空表、输出、求表长、取元素、查找、替换、插入、删除、清空。 要求:①对于需要回传的参数,把实参的地址传给形传;②能在TC2环境下执行。 二、概要设计 1.存储结构 L data next data next data next data next — → 空闲 — → — → — → … — → typedef struct node{ datatype data;/*数据域*/ struct node *next;/*指针域*/ }LNode,*LinkList;/*结点及结点的地址*/ 2.基本操作 ⑴void Output(LinkList L)——输出。 ⑵void Length(LinkList L,int *i)——求表长。 ⑶void Get(LinkList L,int i,LinkList p)——取元素。 ⑷void Locate(LinkList L,datatype x,LinkList p)——查找。 ⑸void Replace1(LinkList L,int i,datatype x)——替换。 ⑹void Replace2(LinkList L,datatype x,datatype y)——替换。 ⑺void Insert1(LinkList L,int i,datatype x)——插入。 ⑻void Insert2(LinkList L,datatype x,datatype y)——插入。 ⑼void Delete1(LinkList L,int i)——删除。 ⑽void Delete2(LinkList L,datatype x)——删除。 ⑾void Clear(LinkList L)——清空。 ⑿void Init(LinkList *L)——创建空表。 三、详细设计 四、测试结果 五、总结 循环单链表(附加头结点,引用) 一、题目 实现附加头结点循环单链表的基本操作:创建空表、输出、求表长、取元素、查找、替换、插入、删除、清空。 二、概要设计 1.存储结构 L data next data next data next data next — → 空闲 — → — → — → … — → typedef struct node{ datatype data;/*数据域*/ struct node *next;/*指针域*/ }LNode,*LinkList;/*结点及结点的地址*/ 2.基本操作 三、详细设计 四、测试结果 五、总结 对顶顺序双栈(动态,传地址) 一、题目 1.以无符号整数为元素,实现对顶顺序栈的基本操作:初始化、入栈、出栈、取栈顶、销毁。 2.用对顶顺序栈实现以下功能: ⑴由给定入栈序列可以得到或不能得到的出栈序列。 ⑵计算含有双目运算+、-、*、/和()的整数表达式的值; ⑶迷宫求解。 …… 要求:①对于需要回传的参数,把实参的地址传给形传;②能在TC2环境下执行。 二、概要设计 1.存储结构 data n top1 top2 … … … typedef struct{ DataType *data;/*栈1基址*/ int n;/*总栈长*/ int top1;/*栈顶1下标*/ int top2;/*栈顶2下标*/ }SeqStack; 2.基本操作 ⑴void Init(SeqStack *s)——初始化。 ⑵void Push(SeqStack *s,DataType x,int i)——入栈。 ⑶void Pop(SeqStack *s,DataType *x,int i)——出栈。 ⑷void Top(SeqStack *s,DataType *x,int i)——取栈顶。 ⑸void Destroy(SeqStack *s)——销毁。 ⑹ ⑺ ⑻ …… 三、详细设计 四、测试结果 五、总结 双端操作顺序表(静态,传地址) 一、题目 1.以无符号整数为元素,实现双端操作顺序表的基本操作:初始化、入栈、出栈、取栈顶。 2.实现以下功能: ⑴由给定入表序列可以得到或不能
本文档为【数据结构课程设计题目要求】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_233197
暂无简介~
格式:doc
大小:309KB
软件:Word
页数:66
分类:互联网
上传时间:2013-12-20
浏览量:59