数据结构课程设计课题
数据结构课程设计

福建工程学院课程设计课程:数据结构课程设计题目: 1.综合应用2.折半查找3.快速排序专业:软件工程班级:1101座号:3110305129姓名:潘聪2012 年 6 月26 日设计题目1:综合应用一、问题描述有N名学生,每名学生含有如下信息:学号、姓名、某四门课的成绩,并计算其总分,用一结构数组表示之。
然后实现以下功能:(1)将这些数据存放至文件stuf.dat中;(2)将文件中的数据读出至结构数组中,并显示之;(3)输出总分最高分和最低分的名字;(4)输出总分在340分,单科成绩不低于80分的名单;(5)求出各科平均分数;(6)按总分排名;(7)输出补考名单。
二、解决问题的算法思想描述(1)子函数:首先确定需要的子函数,总共7个,对应的功能分别是题目要求的七项(2)主函数:主函数中,要设计出易于使用的人机界面,就必须要用到switch 。
(3)文件的存放读取,必须要用到文件的函数,fopen,fread,fclose等。
(4)把每个学生的信息定义在一个结构数组中,利用结构数组更加方便。
(5)各科成绩排名用冒泡排序即可。
(6)输出总分,补考名单,各科的平均分都比较简单。
三、设计1. 数据结构的设计和说明//定义结构体typedef struct{int num; //学号char name[10]; //姓名int score1; //语文int score2; //数学int score3; //物理int score4; //化学}student;student stu[MAX]; //结构数组2.模块结构图及各模块的功能:3. 关键算法的设计(必须画出流程图)打印最高成绩和最低成绩的名单算法流程图:四、测试数据及测试结果:五、课程设计总结注意细节方面,任何一个小问题都不能忽视,才能最终解决问题。
六、关键源程序的清单关键算法一:按照总成绩排名:void paiming(){read();student x;int sum[MAX],t=0,i,m,n,j;for(i=0;i<MAX; i++){sum[i]=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4;}for(m=0;m<MAX-1;m++)for(n=m+1;n<MAX;n++)if(sum[n]>sum[m]){t=sum[n];sum[n]=sum[m]; //总成绩交换sum[m]=t;x=stu[n];stu[n]=stu[m]; //总成绩对应的学生也要同时交换stu[m]=x;}printf("学号\t姓名\t语文\t数学\t英语\t物理\t总分\t名次\n");for(j=0;j<MAX;j++){printf("%-8d%-8s%-8d%-8d%-8d%-8d%-8d%-8d\n",stu[j].num,stu[j].name,stu[j].score1,stu[j].sc ore2,stu[j].score3,stu[j].score4,sum[j],j+1);}}关键算法二:打印出最高成绩和最低成绩的姓名:void maxmin(){int sum[MAX],i,j,m=0,n=0,max,min;read();for(i=0;i<MAX; i++){sum[i]=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4;} //求书每个人的总分max=min=sum[0]; //用一维数组保存成绩,并且先令第一位学生的成绩作为最高分和最低分for(j=0;j<MAX;j++){if(sum[j]>max){m=j;max=sum[j]; //定义变量m,n分别保存最高分和最低分的下标}else if(sum[j]<min){n=j;min=sum[j];}}printf("\n最高分:%s 总分%d\n",stu[m].name,sum[m]);printf("\n最低分:%s 总分%d\n\n",stu[n].name,sum[n]);}设计题目2:折半查找一、问题描述用折半查找法,实现对任意一组数据的查找。
数据结构课程设计(5篇)

数据结构课程设计(5篇)第一篇:数据结构课程设计课程设计说明书设计名称:数据结构课程设计题目:设计五:二叉树的相关操作学生姓名:专业:计算机科学与技术班级:学号:指导教师:日期: 2012 年 3 月 5 日课程设计任务书计算机科学与技术专业年级班一、设计题目设计五二叉树的相关操作二、主要内容建立二叉树,并对树进行相关操作。
三、具体要求1)利用完全二叉树的性质建立一棵二叉树。
(层数不小于4层)2)统计树叶子结点的个数。
3)求二叉树的深度。
4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。
四、进度安排依照教学计划,课程设计时间为:2周。
本设计要求按照软件工程的基本过程完成设计。
建议将时间分为三个阶段:第一阶段,根据题目要求,确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;第二阶段,根据流程图编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是:35: 45: 20。
五、完成后应上交的材料本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。
其中课程设计说明书的格式按学校规范(见附件),其内容不能过于简单,必须包括的内容有:1、课程设计的基本思想,系统的总功能和各子模块的功能说明;2、课程设计有关算法的描述,并画出有关算法流程图;3、源程序中核心代码的说明。
4、本课程设计的个人总结,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。
5、源代码要求在关键的位置有注释,增加程序的可读性。
程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
数据结构课程设计题目及要求

数据结构课程设计题目及要求一、要求本次课程设计可以从以下的题目中任选其一,每个题目基本实现的要求是:有菜单功能有读写数据存盘功能成品应包括以下内容:程序设计书(Word格式)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。
2、可执行程序源代码。
3、答辩时使用的ppt。
二、设计题目题目一:仓库管理系统(线性表应用)[问题描述]建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
[实现提示]可以采用双向链表的存储结构,如可定义如下的存储结构: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

《数据结构》课程设计指导书(共13题)一、课程设计的目的课程设计的目的是培养学生综合程序设计的能力,训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力。
巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的学习作风。
为今后学习其他计算机课程打下基础。
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将书本上的理论知识和工作、生产实际有机地结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高学生的编程序能力和创新意识。
二、课程设计的要求在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过算法的设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的课程设计与程序分析报告。
前期准备工作完备与否直接影响到后序上机调试工作的效率。
三、课程设计的学生分组情况每组三至五人,共同研究、共同讨论,可以共同编写算法,但必须各自独立完成各自的程序。
四、课程设计的时间安排课程设计前两周:将各项任务及问题进行讲解、分析。
课程设计一周:星期一:学生对任务进行讨论、研究与分析,初步设计出算法。
星期二到星期四:设计出详细算法,并上机调试程序。
星期五到星期六:写出课程设计报告并考核。
五、课程设计的主要内容【课程设计题目一】一元稀疏多项式加法、乘法器【问题描述】设计一个一元稀疏多项式加法、乘法器用于计算两个多项式的加法和乘法。
例如(x2+4x5+2x9)+(x+3x4)或(7x4+4x6+2x9)*(x4+3x9)【基本要求】(1)输入并建立两个多项式f(x)和g(x);(2)输出每个多项式,要求输出时按指数从小到大输出。
(3)两个多项式完成加法、乘法运算。
(4)输出两个多项式的加法之和及乘积的结果。
(5)写出课程设计报告【实现提示】用带表头结点的单链表存储多项式。
【测试数据】分别选定三组测试数据进行测试,验证程序的正确性。
数据结构课程设计课题

题一:图书管理系统【题目描述】设计一个计算机管理系统完成图书管理基本业务。
【基本要求】1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;2) 对书号建立索引表(线性表)以提高查找效率;3) 系统主要功能如下:图书入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;归还:注销对借阅者的登记,改变该书的现存量。
题二:学生成绩管理系统【题目描述】设计一个简单的学生成绩管理系统。
【基本要求】完成对学生成绩信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。
题三:通讯录查询系统【题目描述】设计一个普通的通讯录查询系统,实现通讯录的管理业务。
【基本要求】通信录要求实现最基本的功能,包括录入、删除、查找和修改,为此,需要首先定义记录的格式,其基本属性包括学号、姓名、性别、住址、联系电话等。
整个系统包括以下几大功能模块:1)通信录的建立。
完成个人数据的保存。
2)通信录的查询。
用户可以按照联系人的学号、姓名或者联系电话查询。
查询结果以表格的形式显示。
3)通信录的维护。
实现对记录的修改、删除、插入和排序操作。
4)通信录的输出。
实现屏幕显示(浏览)和将数组中存储起来的记录信息写入数据文件中。
题四:停车场管理系统【题目描述】设计一个停车场管理系统,管理车辆的进出【基本要求】1、模拟上述管理过程。
要求以顺序栈模拟停车场,以链队列模拟便道。
2、从终端读入汽车到达或离去的数据,每组数据包括三项:(1)是“到达”还是“离开”;(2)汽车牌照号码;(3)“到达”或“离开”的时刻。
3、与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。
《数据结构》课程设计 普里姆算法 最小生成树

[i].stop_vex,lge[i].weight); /*输出N-1条最小边的信息*/
for(i=0;i<12;i++)
{
line(vex[lge[i].start_vex][0],vex[lge[i].start_vex][1],vex[lge
lge[min]=lge[i];
lge[i]=edge;
vx=lge[i].stop_vex;
for(j=i+1; j<pgraph->n-1; j++)
{
vy=lge[j].stop_vex;
weight=pgraph->arcs[vx][vy];
if(weight<lge[j].weight)
{
{550,250},{520,330},{430,400},{350,450},{270,400},{200,330}};
/*初始化个顶点的坐标*/
int info[12][12];
char *text;
void initalGraph(int vec[][2]) /*画出顶点函数*/
{
int gd=DETECT,gm;
[i].stop_vex][0],vex[lge[i].stop_vex][1]);
}
/*根据生成的最小边数组连线*/
printf("---It is done!---");
getch();
exit(1);
}
此程序再TURBOC2.0环境中编译通过运行.TURBOC2.0下载的地址
数据结构课程设计题目汇总及要求

数据结构课程设计题目课程设计题一:线性表子系统一.设计目的: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.设计出链表结构的相关函数库,以便在程序设计中调用2.设计出顺序表结构的相关函数库,以便在程序设计中调用3.设计一元多项式的相关函数库,以便在程序设计中调用4.设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符的任意整型表达式进行求解5.设计出二叉链表结构的相关函数库,以便在程序设计中调用6.设计出树结构的相关函数库,以便在程序设计中调用7.采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比8.设计出图结构的相关函数库,以便在程序设计中调用9.校园导航问题10.比较排序算法的时间性能11.飞机订票系统任务12.文章编辑13.教学计划编制问题14.活期储蓄帐目管理15.简易文本编辑器16.图的遍历和生成树求解实现17.宿舍管理查询软件18.图书借阅管理系统19.二叉排序树的实现20.稀疏矩阵应用21.树与二叉树的转换的实现22.关键路径问题23.哈希表设计与实现课题1:设计出链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题3:设计一元多项式的相关函数库,以便在程序设计中调用。
要求:(1)所设计的数据结构应尽可能节省存储空间。
(2)设计一元多项式的各种基本函数,要求有一元多项式的加减法和乘法。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示 出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题6:设计出树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及 理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示 出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题7:采用哈夫曼编码思想实现文件的压缩和恢复功能,并提供压缩前后的占用空间之比。
要求如下:(1)设计构造哈夫曼树的基本函数,以及实现文件压缩和恢复的函数(2)求解出所构造的哈夫曼树的带权路径长度。
(3)运行时的压缩原文件的规模应不小于5K,演示通过调用自己的库函数来实现文件的压缩和恢复功能。
课题8:设计出图结构的相关函数库,以便在程序设计中调用。
要求:(1)包括图结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及 理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题9(校园导航问题):计你的学校的平面图,至少包括10 个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最 短路径)。
课题10:给出一组实验来比较下列排序算法的时间性能:快速排序、堆排序、希尔排序、冒泡排序、归并排序(其它排序也可以作为比较的对象)要求:(1)时间性能包括平均时间性能、最好情况下的时间性能、最差情况下的时间性能等。
(2)实验数据应具有说服力,包括:规模范围要大(如从100 到10000)数据的初始特性类型要多,因而需要具有随机性;实验数据的组数要多,即同一规模的数组要多选几种不同类型的数据来实验。
实验结果要能以清晰的形式给出,如图、表等。
(3)算法所用时间必须是机器时间,也可以包括比较和交换元素的次数。
(4)实验分析及其结果要能以清晰的方式来描述,如数学公式或图表等。
(5)要给出实验的方案及其分析。
课题11:飞机订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。
订票:(订票情况可以存在一个数据文件中,结构自己设定);可以订票,如果该航班已经 无票,可以提供相关可选择航班。
退票: 可退票,退票后修改相关数据文件;客户资料有 姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以 修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;课题12:文章编辑:输入一页文字,程序可以统计出文字、数字、空格的个数(2人)。
静态存储一页文章,每行最多不超过80 个字符,共N 行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
(4)存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
(5)输出形式:a.分行输出用户输入的各行字符;b.分4 行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"c.输出删除某一字符串后的文章。
课题13: 教学计划编制问题设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。
课题14:活期储蓄帐目管理活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:(1) 能比较迅速地找到储户的帐户,以实现存款、取款记账;(2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要课题15:简易文本编辑器。
要求:(1) 具有图形菜单界面;(2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;(3) 可正确存盘、取盘;(4) 正确显示总行数。
课题16:图的遍历和生成树求解实现。
要求:(1) 先任意创建一个图;(2) 图的DFS,BFS 的递归算法的实现(3) 最小生成树(两个算法)的实现,求连通分量的实现(4) 要求用邻接矩阵、邻接表、十字链表多种结构存储实现课题17:宿舍管理查询软件要求:(1)采用交互工作方式建立数据文件(2)数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)(3)查询菜单: (用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询(4)打印任一查询结果(可以连续操作)课题18.图书借阅管理系统主要分为两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);(2)会员管理(增加会员、查询会员、删除会员、借书信息);课题19.二叉排序树的实现用顺序和二叉链表作存储结构(1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;(2)对二叉排序树T作中序遍历,输出结果;(3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;课题20.稀疏矩阵应用要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。
(1)稀疏矩阵的存储(2)稀疏矩阵加法(3)矩阵乘法(4)矩阵转置课题21:树与二叉树的转换的实现。
以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。
课题22:关键路径问题设计一个程序求出完成整项工程至少需要多少时间以及整项工程中的关键活动。
要求:(1)对一个描述工程的AOE网,应判断其是否能够顺利进行(2)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间课题23:哈希表设计与实现设计哈希表实现电话号码查询系统要求:(1)设每个记录有下列数据项:电话号码、用户名、地址(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表(3)采用再哈希法解决冲突(4)查找并显示给定电话号码的记录(5)查找并显示给定用户名的记录(6)在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法(至少两种),考察平均查找长度的变化。