数据结构课程设计题目-12级
数据结构课程设计题目

题目1:图的遍历功能:实现图的深度优先, 广度优先遍历算法,并输出原图结构及遍历结果。
分步实施:1) 初步完成总体设计,搭好框架;2)完成最低要求:两种必须都要实现,写出画图的思路;3)进一步要求:画出图的结构,有兴趣的同学可以进一步改进图的效果。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目2:n维矩阵乘法:A B-1功能:设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab-1结果。
分步实施:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:建立一个文件,可完成2维矩阵的情况;3)一步要求:通过键盘输入维数n。
有兴趣的同学可以自己扩充系统功能。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目3:数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。
分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:完成第一个功能;3.进一步要求:进一步完成后续功能。
有兴趣的同学可以自己扩充系统功能。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目4:数组应用2功能:读入数组下标,求出数组A靠边元素之和;求从A[0][0]开始的互不相邻的各元素之和;当m=n时,分别求两条对角线上的元素之和,否则打印出m!=n的信息。
数据结构课程设计-学生成绩管理系统

广东学院《数据结构课程设计》题目:学生成绩管理系统学号:姓名:年级:计算机科学与技术6班学院:智能制造学院专业:指导教师:目录一、问题描述与基本要求 (3)1.1问题描述 (3)1.2基本要求 (3)二、数据结构的设计 (3)2.1数据结构的选择 (3)2.2单链表的定义 (3)2.3重要函数的定义及说明 (4)三、软件模块结构图....................... 错误!未定义书签。
3.1大体模块关系图 (13)3.2各模块具体分析..................... 错误!未定义书签。
四、程序流程图 (15)五、源程序 (17)六、调试分析............................. 错误!未定义书签。
6.1程序错误修改及完善的过程 (37)6.2最终程序所有功能运行结果........... 错误!未定义书签。
6.3测试数据 (39)七、用户使用手册 (40)八、心得体会............................. 错误!未定义书签。
一、问题描述与基本要求1.1问题描述设计一个学生管理系统,建立初始学生成绩,添加/插入,查找,修改,删除学生成绩。
1.2基本要求系统设计要求:1、能比较迅速地实现添加学生的学号,姓名和成绩2、能比较迅速地通过学生的学号或姓名查询、修改或删除学生成绩3、当有学生时,输出所有学生的成绩信息,包括语文,数学,英语的成绩二、数据结构的设计2.1数据结构的选择课程设计题目的要求是,要较简单迅速地实现添加、查询、修改、删除学生成绩的的功能,于是我很自然地想到了可以用单链表的结构,通过编写相应功能函数来实现建立新结点、删除结点、修改结点中数据域的内容、输出结点数据域中的内容等功能,即可满足课程设计题目的要求。
2.2单链表的定义先定义单链表结点的数据域,数据域包括学生姓名、学生学号、学生成绩等学生信息,然后再定义链表结点,链表结点包括结点数据域和结点链域,最后再定义指向链表结点的指针。
北京师范大学数据结构教学资料12级数据结构试卷.docx

北京师范大学2013-2014学年第1学期期末考试试卷(A卷)课程名称:数据结构任课教师姓名: 郑新肖永康卷面总分:100分考试时长:100分钟考试类别:闭卷0开卷口其他口院(系):专业:年级:姓名:学号:阅卷教师(签字): ______________________一、选择题(每小题2分,共20分)1.算法分析的目的是()。
A.研究算法的输入与输出Z间的关系B.找出数据结构的合理性C.分析算法的效率以求改进算法D.分析算法的可读性与可移植性2.与双向链表相比较,单向链表的缺点之一是()。
A.无法省略头结点指针B.插入和删除操作麻烦C.无法进行随机访问D.占用更大的存储空间3.在非空双向循环链表中由q所指的那个链结点前面插入一个由p指的链结点的动作对应的语句依次为:p->rlink=q; p->llink=q->llink; q->llink=p 和()。
A. q->rlink=pB. q-Allink-ArlinkrpC・ p->llink->rlink=p D. p->rlink->rlink=p4.一个以整数为栈元素的栈,若元素的进栈顺序为1, 2, 3, 4, 5,出栈可以发生在任何时刻。
则下面的序列中,()是可能的出栈序列。
A. 2,5,4,1,3B. 3丄4,2,5C. 5,4,3丄2D. 2,3,1,5,45.n个结点的线索二叉树上,含有的线索数为()。
A・2n B・n・l C・n+1 D・n6.已知某非空二叉树采用顺序存储结构,树屮结点的数据信息依次存放在一个一维数组中,该二叉树的中序遍历系列为()A. GDBAFHCEB. GBDAFHCEC. BDGAFHCED. BGDAFHCE7.以下序列不是堆的是( )oA.(100,85,98,77,80,60,82,40,20,10,66)B.(100,98,85,82,80,77,66,60,40,20,10)C.(10,20,40,60,66,77,80,82,85,98,100)D.(100,85,40,77,80,60,66,98,82,10,20)&导致图的遍历序列不唯一的因素有()。
《数据结构》课程设计

《数据结构》课程设计一、课程目标《数据结构》课程旨在帮助学生掌握计算机科学中基础的数据组织、管理和处理方法,培养其运用数据结构解决实际问题的能力。
课程目标如下:1. 知识目标:(1)理解基本数据结构的概念、原理和应用,如线性表、栈、队列、树、图等;(2)掌握常见算法的设计和分析方法,如排序、查找、递归、贪心、分治等;(3)了解数据结构在实际应用中的使用,如操作系统、数据库、编译器等。
2. 技能目标:(1)能够运用所学数据结构解决实际问题,具备良好的编程实践能力;(2)掌握算法分析方法,能够评价算法优劣,进行算法优化;(3)能够运用数据结构进行问题建模,提高问题解决效率。
3. 情感态度价值观目标:(1)激发学生对计算机科学的兴趣,培养其探索精神和创新意识;(2)培养学生团队合作意识,学会与他人共同解决问题;(3)增强学生的责任感和使命感,使其认识到数据结构在信息技术发展中的重要性。
本课程针对高中年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果,为后续教学设计和评估提供依据。
课程注重理论与实践相结合,旨在提高学生的知识水平、技能素养和情感态度价值观。
二、教学内容《数据结构》教学内容依据课程目标进行选择和组织,确保科学性和系统性。
主要包括以下部分:1. 线性表:- 线性表的定义、特点和基本操作;- 顺序存储结构、链式存储结构及其应用;- 线性表的相关算法,如插入、删除、查找等。
2. 栈和队列:- 栈和队列的定义、特点及基本操作;- 栈和队列的存储结构及其应用;- 栈和队列相关算法,如进制转换、括号匹配等。
3. 树和二叉树:- 树的定义、基本术语和性质;- 二叉树的定义、性质、存储结构及遍历算法;- 线索二叉树、哈夫曼树及其应用。
4. 图:- 图的定义、基本术语和存储结构;- 图的遍历算法,如深度优先搜索、广度优先搜索;- 最短路径、最小生成树等算法。
5. 排序和查找:- 常见排序算法,如冒泡、选择、插入、快速等;- 常见查找算法,如顺序、二分、哈希等。
《数据结构》课程设计题目1+2

《数据结构》课程设计题目1+22011级《数据结构》课程设计【实验目的】:使学生全面深入理解数据结构知识,掌握应用技巧,提高应用与分析能力,并培养学生综合运用所学理论知识求解问题的能力和协作精神。
【实验原理】:针对相对复杂问题,综合数据结构、算法和相关数学知识,给出解决问题的方案,应用相关的数据结构和算法知识设计并编写代码,给出测试数据和测试方案,完成上机测试和运行结果分析。
【实验要求】:1.第一、二题一人独立完成,第三题以小组为单位协作完成(每组3-4人);2.前三周内须完成第一题,第四和第五周内须完成第二题,后四周完成第三题;3.检查程序前须提交设计报告(按提交报告的先后顺序检查程序);4.第一、二题每人提交一份设计报告, 第三题每个小组提交一份报告,该报告由组内每人提交的一份设计报告装订而成,报告内必须明确描述每个人的分工;5.检查第三题时小组成员都要参与讲解(每人侧重讲自己完成部分);6.每次上机必须出席,如不能到需事先提交辅导员签字的假条;【实验题目】题目一: 基本查找算法比较1)对以下3种基本的查找算法的性能进行比较:顺序查找,二叉查找树,哈希。
算法包含两步:第一步:从文件中读取数据建查找表;第二步从文件中读取查找关键字静态查找。
2)待查找记录的个数不小于n ( n<=1000000),关键字key互不相同,取值范围0-109;查询操作的次数为m(m=100000),每次查询的关键字随机生成,取值范围0-109.3)比较的指标为关键字的比较次数(包含建立查找表和查找操作)、内存空间和实际运行时间。
至少用5组不同的数据作比较,至少包含完全正序(n=10000)、完全逆序(n=10000)及随机(n=10000、100000,1000000)情况。
4)为提高比较的可信度,待查找数据和查询关键字数据的生成及排序等预处理要设计成一个独立功能,并将结果数据保留在data.in文件中,格式如下:第1行,用空格分隔的两个非负整数,分别表示n和m;接下来的n行,每行一个非负整数,表示待查询数据;接下来的m行,每行一个非负整数,表示查询的关键字。
2012年数据结构毕业课程设计题目及报告范例

(此文档为word格式,下载后您可任意编辑修改!)ch0 绪 (3)一、概述 (3)二、实习步骤 (4)三、实习报告规范 (5)ch1 线性表及其应用 (7)1. 运动会分数统计 (7)2. 约瑟夫环 (7)3. 集合的并、交和差运算(此题目不能选,因为报告范例对应的就是该题目) (8)4. 长整数四则运算 (8)5. 一元稀疏多项式计算器 (9)6. 池塘夜降彩色雨 (10)ch2 栈和队列及其应用 (11)1. 停车场管理 (11)2. 魔王语言解释 (11)3. 马踏棋盘 (12)5. 银行业务模拟 (13)6. 航空客运订票系统 (14)7. 电梯模拟 (14)8. 迷宫问题 (17)ch3 串及其应用 (19)1. 文学研究助手 (19)2. 文本格式化 (20)3. 简单行编辑程序 (21)4. 串基本操作的演示 (22)5. 程序分析 (23)ch4 数组和广义表 (25)1. 稀疏矩阵运算器 (25)2. 多维数组 (26)3. 识别广义表的头或尾 (27)4. 简单LISP算术表达式计算器 (27)ch5 树、图及其应用 (29)1. 重言式判别 (29)2. 哈夫曼编译码器 (29)3. 图遍历的演示 (30)4. 教学计划编制问题 (31)5. 校园导游咨询 (31)6. 最小生成树问题 (32)7. 表达式类型的实现 (32)8. 全国交通咨询模拟 (33)ch6 存储管理、查找和排序 (35)1. 伙伴存储管理系统演示 (35)2. 哈希表设计 (36)3. 图书管理 (37)4. 平衡二叉树操作的演示 (37)5. 英语词典的维护和识别 (38)6. 内部排序算法比较 (38)7. 多关键字排序 (39)ch7 文件操作 (40)1. 文件索引 (40)2. 成绩分析问题 (40)附录1: 课程设计报告范例-集合的并、交和差运算 (41)ch0 绪一、概述上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
数据结构课程设计题目汇总及要求

数据结构课程设计题目课程设计题一:线性表子系统一.设计目的:1.掌握线性表的特点2.掌握线性表的顺序存储结构和链式存储结构的基本运算3.掌握线性表的基本操作二.设计内容和要求:1.设计一个选择式菜单。
线性表子系统******************************************************* 1 ……建表** 2 ……插入** 3 ……删除** 4 ……显示** 5 ……查找** 6 ……求表长** 0 ……返回*******************************************************请选择菜单号(0…6):2.采用单链表创建线性表。
3.在线性表中实现插入、删除元素,显示线性表中所有元素,查找元素和求线性表长的基本操作。
课程设计题二:栈子系统一.设计目的:1.掌握栈的特点及其描述方法2.掌握链式存储结构实现一个栈3.掌握链栈的各种基本操作4.掌握栈的典型应用的算法二.设计内容和要求:1.设计一个选择式菜单。
栈子系统****************************************************** * 1 ……入栈* * 2 ……出栈* * 3 ……显示* * 4 ……数制转换* * 0 ……返回* ****************************************************** 请选择菜单号(0…4):2.设计一个整型数据元素的链栈。
3.编写入栈、出栈和显示栈中全部元素的程序。
4.编写一个把十进制数转换成八进制数的应用程序。
课程设计题三:队列子系统一.设计目的:1.掌握队列的特点及其描述方法2.掌握链式存储结构实现一个队列3.掌握队列的各种基本操作4.掌握队列简单应用的算法二.设计内容和要求:1.设计一个选择式菜单。
队列子系统******************************************************* 1 ……入队** 2 ……出队** 3 ……读队首元素** 4 ……显示** 5 ……报数问题** 0 ……退出*******************************************************请选择菜单号(0…5):2.设计一个整型数据元素的链队列。
数据结构课程设计题目

数据结构课程设计题目以下7个题目任选其一。
1.排序算法比较利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且(1)统计每一种排序上机所花费的时间。
(2)统计在完全正序,完全逆序情况下记录的比较次数和移动次数。
(3)比较的指标为关键字的比较次数和记录的移动次数(一次记录交换计为3次移动)。
(4)对结果作简单分析,包括对各组数据得出结果波动大小的解释。
2.图的深度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索遍历。
画出搜索顺序示意图。
3.图的广度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历。
画出搜索顺序示意图。
4.二叉树的遍历对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。
画出搜索顺序示意图。
5.链表操作利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。
画出搜索顺序示意图。
6.一元稀疏多项式简单计数器(1)输入并建立多项式(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。
序列按指数降序排列。
(3)多项式a和b相加,建立多项式a+b,输出相加的多项式。
(4)多项式a和b相减,建立多项式a-b,输出相减的多项式。
用带头结点的单链表存储多项式。
测试数据:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)(2)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)7.实现两个链表的合并基本功能要求:(1)建立两个链表A和B,链表元素个数分别为m和n个。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成品应包括以下内容:1、程序设计书(Word格式)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。
2、可执行程序源代码。
题目一:仓库管理系统(线性表应用)[问题描述]建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
[实现提示]可以采用双向链表的存储结构,如可定义如下的存储结构:typedef struct dnode /*定义双向链表结构体*/{int number; /*货物编号*/char name[max]; /*货物名称*/int counter; /*货物数量*/struct dnode *prior,*next; /*定义两指针,分别指向其前驱和后继*/}dlnode;题目二:单位员工通讯录管理系统(线性表应用)[问题描述]为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct { /*员工通讯信息的结构类型定义*/char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/char call[15]; /*手机号码*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;题目三: 哈夫曼编码/译码系统(树应用)[问题描述]利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
现在要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。
[实现提示]在本例中设置发送者和接受者两个功能,发送者的功能包括:①输入待传送的字符信息;②统计字符信息中出现的字符种类数和各字符出现的次数(频率);②根据字符的种类数和各自出现的次数建立哈夫曼树;③利用以上哈夫曼树求出各字符的哈夫曼编码;④将字符信息转换成对应的编码信息进行传送。
接受者的功能包括:①接收发送者传送来的编码信息;②利用上述哈夫曼树对编码信息进行翻译,即将编码信息还原成发送前的字符信息。
从以上分析可发现,在本例中的主要算法有三个:(1)哈夫曼树的建立;(2)哈夫曼编码的生成;(3)对编码信息的翻译。
题目四:教学计划编制问题(图的应用)[问题描述]大学的每个专业都要制定教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。
每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
[实现提示]1、输入参数应包括:学期总数,一学期的学分上限,每门课的课程号(可以是固定占3位的字母数字串)、学分和直接先修课的课程号。
2、应允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
3、若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。
计划的表格格式可以自己设计。
4、可设学期总数不超过12,课程总数不超过100。
如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。
题目五:图书管理系统(查找应用)[问题描述]图书管理基本业务活动包括:对一本书的采编入库、清除库存、借阅和归还等等。
试设计一个图书管理系统,将上述业务活动借助于计算机系统完成。
[实现提示]1、每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。
2、由于图书管理的基本业务活动都是通过书号(即关键字)进行的,所以要用对书号索引,以获得高效率。
3、系统应实现的基本功能有:●采编入库:新购入一种书,经分类和确定书号之后登记到图书帐目中去。
如果这两种书在帐中已有,则只将总库存量增加。
●清除库存:某种书已无保留价值,将它从图书帐目中注销。
●借阅:如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限。
●归还:注销对借阅者的登记,改变该书的现存量。
●显示:以凹入表的形式显示B树。
这个操作是为了调试和维护的目的而设置的。
●题目六药店的药品销售统计系统(排序应用)●【问题描述】●设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。
●【实现提示】●在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。
各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。
药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。
对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。
在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。
●药品信息的元素类型定义:●typedef struct node●{ char num[4]; /*药品编号*/●char name[10]; /*药品名称*/●float price; /*药品单价*/●int count; /*销售数量*/●float sale; /*本药品销售额*/●}DataType;●存储药品信息的顺序表的定义:●typedef struct●{ DataType r[MaxSize];●int length;●}SequenList;●●题目七电视大赛观众投票及排名系统(排序应用)●【问题描述】●在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。
现在要求编写一程序模拟实现上述系统的功能。
●【实现提示】●在本例中,首先输入参赛选手的人数(范围为1-9个),然后根据人数通过malloc函数来开辟存放选手信息的顺序表。
将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按’1’为1号选手投票,按’2’为2号选手投票,以此类推,以按’0’作为投票结束标志。
投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同,●(1)存储类型的定义●参赛选手信息存储类型的定义:●typedef struct node{●char name[8]; /*选手姓名*/●int num; /*选手编号*/●int score; /*选手得分*/●int tax; /*选手名次*/●}Node;题目八一元多项式计算【问题描述】1.能够按照指数降序排列建立并输出多项式;2.能够完成两个多项式的相加、相减,并将结果输入;【任务要求】1.存储结构;2.多项式相加的基本过程的算法(可以使用程序流程图)3.可以提出算法的改进方法;【测试数据】自行设定,注意边界等特殊情况。
题目九集合的交、并、差运算【问题描述】编制一个能演示执行集合的交、并和差运算的程序。
【任务要求】1)集合元素用小写英文字母,执行各种操作应以对话方式执行。
2)算法要点:利用单链表表示集合;理解好三种运算的含【测试数据】自行设定,注意边界等特殊情况。
题目十最小生成树【问题描述】在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
对于图,其生成树中的边也带权,将生成树各边的权值总和称为生成树的权,并将权值最小的生成树称为最小生成树(Minimun Spanning Tree),简称为MST。
有两种非常典型的算法:Prim算法和kruskal算法。
【任务要求】设计程序完成如下功能:对给定的网和起点,用PRIM算法和kruskal算法的基本思想求解出所有的最小生成树。
存储结构可自行选择。
【测试数据】自行设定,注意边界等特殊情况。
题目十一:算术表达式与二叉树【问题描述】一个表达式和一棵二叉树之间,存在着自然的对应关系。
写一个程序,实现基于二叉树表示的算术表达式的操作。
【任务要求】假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。
实现以下操作:1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E。
3)Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。
4)Value(E)—对算术表达式E求值。
5)CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2)【测试数据】1)分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。
每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。
题目十二:B-树与B+树及其操作【问题描述】学习并研究B-树与B+树,并编写演示它们操作的程序。
【任务要求】1)B-树构建、查找、插入和删除操作程序。
2)B+树构建、查找、插入和删除操作程序。
【测试数据】题目十三:求表达式的值【问题描述】建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括号的混合运算;比如一次给出10道题目,作为一轮练习。
每轮练习中,题目是一个一个给出的,每给出一个题目,要求学生输入答案;每当学生练习完一轮,要给出这一轮学生答对题的数目及答错的数目。
并询问是否继续下一轮。
【任务要求】完成带括号的加减乘除混合运算的表达式的求值。
【测试数据】为减小难度,表达式仅限于100以内的整数。
题目十四:树与二叉树的转换【问题描述】给出一棵树,要求用孩子兄弟链接表实现树的存储,并将它转换为二叉树。
【任务要求】(1) 给出树的创建算法实现;(2) 给出树转换为二叉树的算法实现;(3) 以缩进方式给出二叉树的打印输出。
【测试数据】树的数据以括号形式给出,如A(B(C(D)E)F(G(H)I),表示的树如下图所示。
AB DC E F GH I。