数据结构课程实验

  • 格式:doc
  • 大小:59.00 KB
  • 文档页数:6

《数据结构课程实验》考核方式
采用上机情况、程序质量、实习报告相结合的形式,满分为100分。
1. 上机情况(30%)
包括出勤情况、调试表现、是否上网、玩游戏。
2. 程序质量(50%)
3. 实习报告(20%)

实验一 线性表的基本操作
一、实验目的:
1.掌握线性表的顺序和链式存储结构。
2.熟练地利用顺序和链式存储结构实现线性表的基本操作。
3.能熟练地掌握顺序和链式存储结构中算法的实现。
二、实验内容:
1.用数组建立顺序表,用头插法或尾插法建立带头结点的单链表。
2.实现顺序表和单链表上的插入、删除、查找、修改、输出等基本操作 。
三、
实验要求:
1. 根据实验内容编写程序,上机调试、得出正确的运行程序。
2. 写出实验报告(包括源程序和运行结果)。

实验二 栈与队列
一、实验目的
1.掌握栈及其基本操作的实现。
2.掌握队列及其基本操作的实现。
二、实验要求
1.实验前做好充分准备,包括复习第三章所学内容,事先预习好本次实验内容。
2.实验时记录实验结果,按要求完成各题。
3.实验结束后,给出实验总结与分析并及时给出本次实验的实验报告。
三、实验题目
本次实验给出的选定题目如下表所示。
实验名称 学 时 实验内容
实验要求 实验
类型

栈与队列 2
(1)顺序栈的定义及其操作算法的实现; 必做 设计性
(2)链式队列定义及其操作算法的实现; 选做 设计性
(3)循环队列定义及其操作算法的实现; 必做 设计性
(4)利用栈实现进制转换 选做 综合性
说明:
(a)实验内容1)与3)为必做内容。
(b)实验内容2)与4)为选做内容。
四、实验内容与要求
1、实验题目一:顺序栈的定义及其操作算法的实现
要求:编程实现顺序栈表的类型定义及顺序表的初始化操作、入栈操作、出栈操作、取
栈顶元素操作、输出操作等,并对其进行验证。
2、实验题目二:链式队列的定义及其相关操作算法的实现
要求:编程实现链式队列的类型定义及其初始化操作、入队操作、出队操作、取队头操
作、输出操作等,并对其进行验证。
3、实验题目三:循环队列定义及其操作算法的实现
要求:编程实现循环队列的类型定义及其初始化操作、入队操作、出队操作、取队头操
作、输出操作等,并对其进行验证。
4、实验题目四:利用栈实现进制转换
要求:利用栈(顺序栈或链式栈)实现进制转换问题

实验三 二叉树
一、实验目的
1.掌握二叉树的链式存储结构及其相关操作的实现。
2.掌握二叉树的先序、中序、后序的递归遍历算法。
3.理解二叉树的各种非递归遍历算法的实现。
二、实验要求
1.实验前做好充分准备,包括复习第六章所学内容,事先预习好本次实验内容。
2.实验时记录实验结果,按要求完成各题。
3.实验结束后,给出实验总结与分析并及时给出本次实验的实验报告。
三、实验题目
本次实验给出的选定题目如下表所示。

实验名称 学 时 实验内容
实验要求 实验
类型

二叉树 4
(1)二叉树的创建、递归遍历及其它基本操作的实现。 必做
设计性

(2)二叉树非递归遍历算法的实现。 选做 设计性
(3)哈夫曼树及哈夫曼编码的算法实现。 选做 综合性

说明:
(1)实验内容1)为必做内容。
(2)实验内容2)与实验内容3)为选做内容。
四、实验内容与要求
1、实验题目一:(1)二叉树的创建、递归遍历及其它基本操作的实现。
要求:定义用二叉链表表示的二叉树,并实现二叉树的创建、遍历(先序、中序后序)
的递归算法及求深度操作等,并对其进行验证。
2、实验题目二:二叉树非递归遍历算法的实现
要求:在题目一的基础上,实现二叉树的非递归遍历算法(先序、中序、后序或按层),
并对其进行验证。
3、实验题目三:哈夫曼树及哈夫曼编码的算法实现
要求:编程实现哈夫曼树的创建及利用哈夫曼树求解哈夫曼编码。

实验四 查找
一、实验目的
1.掌握顺序查找与折半(二分法)查找方法。
2.通过查找算法在实际应用中的运用,增强程序设计能力。
二、实验要求
要求:利用顺序表作为查找表,创建一查找表,编程实现顺序查找算法及二分法查找算
法,并对其进行验证。
三、实验题目
实验题目:顺序查找算法、二分法查找算法
要求:利用顺序表作为查找表,创建一查找表,编程实现顺序查找算法及二分法查找算
法,并对其进行验证。
四、需求分析
本演示程序用C++编写,完成对顺序表的顺序查找与折半查找。

实验五 排序
一、实验目的
1.掌握插入排序(直接插入排序、Shell排序)算法的实现方法。
2.掌握交换排序(冒泡排序、快速排序)算法的实现方法。
3.掌握选择排序(简单的选择排序、堆排序)算法的实现方法。
二、实验要求
1.实验前做好充分准备,包括复习所学内容,事先预习好本次实验内容。
2.实验时记录实验结果,按要求完成各个设计题目。
3.实验结束后,给出实验总结与分析并及时给出本次实验的实验报告。
三、实验题目
本次实验给出的选定题目如下表所示。

实验名称 学 时 实验内容
实验要求 实验
类型

排序 2 (1)直接插入排序算法、Shell排序算法 必做 设计性 (2)冒泡排序、快速排序算法 必做 设计性
(3)简单选择排序算法、堆排序算法 选做 设计性
(4)班级学生成绩管理(利用某种排序方法实
现按某个或某些关键字排序)
选做 综合性

四、实验内容与要求
1、实验题目一:直接插入排序算法、SHELL排序算法
要求:利用顺序表作为排序表,分别利用直接插入排序及Shell排序方法对其进行排序。
2、实验题目二:冒泡排序、快速排序算法
要求:利用顺序表作为排序表,分别利用冒泡排序与快速排序方法对其进行排序并加以
验证。
3、实验题目三:简单选择排序算法、堆排序算法
要求:利用顺序表作为排序表,分别利用简单选择排序与堆排序方法对其进行排序并加
以验证。
4、实验题目四:班级学生成绩管理
要求:设计一个班级学生绩管理系统,能够存储全班同学的学号、姓名、各科考试成绩
等信息,并能够实现相关查询(按姓名和学号)和排序(按总成绩)操作。
实验六 综合实验
一、实验目的:
综合实验4-5人一组,分组完成,根据数据结构的算法,综合运用所学知识,题目自拟。
通过编程熟练掌握各种数据结构的逻辑结构和存储结构,学会应用各种数据结构解决具体问
题,以及学生查阅资料的能力、团队合作的精神。根据实验内容编程,上机调试运行,每组
派1名同学演示、讲解,以组为单位写出实验报告。
二、实验内容:
例如 模拟一个航班订票系统,要求能够录入、修改、删除和查询航班信息,并为顾客
提供订票和退票服务。
三、
实验要求:
航班信息包括航班号(唯一),起降时间、起飞城市、抵达城市、航班票价、票价折扣、
总座位数和出票数。航班信息管理和客户服务要求完成以下功能:
1. 录入航班信息:可成批录入(存于一个数据文件中)、也可单个录入。
2. 修改航班信息:根据航班号修改航班信息。
3. 删除航班信息:根据航班号删除航班信息。
4. 查询航班信息:可以查询航线的情况。如:输入航班号,可查起降时间、起降城市、
票价、票价折扣及航班是否满仓。或:输入起飞城市,查询航班的情况。
5. 订票:输入航班号和订票数量进行订票。如果机票不足,可以提供相关可选航班或
勿嫖无票信息。
6. 退票:输入航班号和退票数量,可进行退票,并修改相关的文件。
四、实验步骤
1. 根据实验内容编程,上机调试、得出正确的运行程序。
2. 写出实验报告(包括源程序和运行结果)。
3. 每组派一名同学演示、讲解程序。
附录:设计式样示例
附录A 设计封面式样

数据结构课程设计报告
(小初号,宋体,加粗,居中)
题目:××××××××
(二号,宋体,加粗居中)

院 (系):
专 业:
班 级:
学 生:
学 号:
指导教师: (三号,宋体、居中)

××××年 ××月
(四号,宋体、居中)