哈尔滨工业大学计算机科学与技术学院
实验报告
课程名称:数据结构与算法 课程类型:必修
实验项目名称:查找结构与排序算
实验题目:BST存储结构建立(插入)、删除、
查找算法的实现及应用
一、实验目的
(1)通过本实验,掌握BST
设计成绩 报告成绩 指导老师 左右链存储结构的建立;
(2)掌握BST存储结左右链存储结构插入,删除,查找操作; (3)通过本实验,学会进行文件的读写操作;
(4)通过本实验,掌握进行BST左右链存储结构的排序算法;
二、实验要求及实验环境 实验要求:
(1)设计BST的左右链存储结构;
(2)实现BST左右链存储结构上的插入(建立)、删除、查找和排序算法;
(3)利用BST结构和相应的操作算法,实现班级学习成绩管理(单科成绩管理,排名;加权绩点管理与排名等);
(4)学生的基础成绩信息以文件形式保存,学生基础成绩信息和排名信息以文件形式存储;并能显示到屏幕;
实验环境:
带有c语言编译环境的电脑;
三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)
数据结构定义:
//一条记录 typedef struct {
char name[20]; float EN; float CS;
float MATHS; float GPA;
}record;
//二叉查找树结点 struct link {
record data;
struct link * lchild; struct link * rchild; };
主程序流程图:
结束 select == 9? F F select == 1? T 调用build2() //建立成绩管理表 F select == 8? T 调用file_sort() ”为其//打开“weipaixu.txt 中的记录排序并输出到屏 幕与文件中
开始 T 打印程序功能菜单并读入用户选择select F select == 2? T 调用inser()与inser2() //在成绩管理表中插入select == 3? T 调用dele()与dele2() //在成绩管理表中删除一条记录 F select == 6? T 调用sort_output((*t2))//按照学分绩排序 T 调用sort_output((*t))//按照英语成绩排序 F select == 4? T 调用sear()////根据英语成绩查询记录 并打印该记录 select == 5? T 调用sear2()////根据学分绩查询记录 并打印该记录 F F select == 7? 四、测试结果