当前位置:文档之家› DS上机实验题

DS上机实验题

以下是数据结构这门课要做的实验,每一个实验有两个题目,题目一属于综合性实验(全部都做),题目二属于设计性实验(至少必选3题)。

鼓励自选1至2道创新性实验。

指导老师:刘波,郑亚光
时间:双周星期五(3~4节课)。

要求:上机前先写好程序。

实验后及时完成实验报告.采用学校统一规定实验报告格式写。

实验报告按照以下内容书写:
(一)实验目的和要求;
(二)实验主要内容;
(三)实验原理(抽象数据类型的定义,自定义结构类型说明,基本操作说明,主函数与其他函数的调用关系图等)
(四)实验步骤及调试分析;
(五)实验结果及分析;
(六)附录:源程序
实验1 抽象数据类型
题目一:三元组抽象数据类型的表示与实现
1 实验目的:熟悉抽象数据类型的表示和实现方法
2 实验内容:
(1)定义三元组抽象数据类型Triplet,说明三元组存储结构以及基本操作原型;
(2)实现对三元组的构造、读取、求最大、最小值等基本操作
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

.
题目二:复数四则运算
1实验目的:熟悉抽象数据类型的表示和实现方法,利用高级程序语言中已存在的数据类型说明新的结构。

2 实验内容
(1)定义复数抽象数据类型Complex,说明其基本操作原型;
(2)实现下类基本运算:由输入的实部和虚部生成一个复数;两个复数求和;两个复数求差;两个复数求积。

运算结果以相应的复数或实数的表示形式显示。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

实验2 线性表及其应用
题目一:顺序表的操作
1 实验目的:熟练掌握线性表的基本操作在顺序存储结构上的实现。

2 实验内容:
(1)建立n个元素的顺序表SqList,实现顺序表的基本操作;
(2)在SqList}的元素i之后插入一个元素,实现顺序表插入的基本操作;
(3)在SqList中删除指定位置i上的元素,实现顺序表删除的操作。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

题目二:学生课程理系统
1 实验目的:熟练掌握线性表基本操作的实现及应用
2 实验内容:利用顺序表完成一个班级的一个学期的课程的管理:能够增加、删除、
修改学生的成绩记录。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

实验3 栈和队列及其应用
题目一:栈及队列的操作
1 实验目的:熟练掌握栈及队列基本操作的实现
2 实验内容:
(1)建立栈并进行一些元素入栈,实现链栈的建立及入栈的基本操作;
(2)实现某些元素的出栈,实现链栈的出栈的操作;
(3)建立链队列,并实现一些元素入队,实现链队列的建立和入队的基本操作;
(4)实现某些元素出队,实现链队列的出队的基本操作
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

题目二:停车场管理
1 实验目的:熟练栈和队列的结构特性,掌握在实际问题背景下的应用
2 实验内容:
问题描述:
设停车场是一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。

汽车在停车场内按车辆达到时间的先后顺序,依次由北向南排列(大门在最南端,最先达到的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退车车场为它让路,待赶辆车开出大门外,其它车辆在按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短叫纳费用。

试为停
车场编制按上述要求进行管理的模拟程序。

●基本要求
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

每一组输入数据包括三个数据项:汽车“达到”或“离去”信息、汽车牌照号码以及达到或离去的时刻。

对每一组输入数据进行操作后的输出信息为:若是车辆达到、则输出汽车在停车场内或便道上停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

栈以顺序结构实现,队列以链表结构实现。

●测试数据
设n=2,输入数据为(“A”,1,5), (“A”,2,10), (“D”,1, 15), (“A”,3,20),(“D”,2, 35), (“E”,0,0), (“A”,1,5), 其中:“A”表示达到(Arrival);“D”表示离去(Departure); “E”表示输入结束(End)。

3实现提示:
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。

输入数据按达到或离去的时刻有序。

栈中每个元素表示一辆汽车,包括两个数据项:汽车的牌照号码和进入停车场的时刻。

4 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

实验4 树及其应用
题目一:排序二叉树的建立与操作
1 实验目的:通过二叉树的建立来了解二叉树的定义及有关概念,熟悉二叉树的存储结构及性质,掌握用指针类型处理二叉树。

2 实验内容:
(1)构建一颗二叉树;
(2)实现二叉树中所有结点的左、右子树相互交换。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

题目二:哈夫曼码编
1 实验目的:熟练哈夫曼树的定义,掌握构造哈夫曼树的方法、哈夫曼编码的方法
2 实验内容:
●问题描述:
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。

对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编码或译码系统。

试为这样的信息发送站写一个哈夫曼码的编码系统。

●基本要求:
一个完整的系统应具有以下功能:
(1)初始化。

从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树。

(2)编码。

利用以建好的哈夫曼树对文件的正文进行编码。

●测试数据
利用教科书P148 例6-2中数据调试程序
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

实验5 图及其应用
题目一:求最短路径
1 实验目的:掌握图的基本存储方法,了解最短路径的概念,掌握求最短路径的方法
2 实验内容:
(1)建立一个包含6个结点的有向图,
2)利用Dijkstra算法求顶点v0到其它顶点的最短路径。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

题目二:校园导游咨询
1 实验目的:掌握图的基本操作方法及应用
2 实验内容:
●问题描述:
设计一个校园导游程序,为来访的客人提供各种信息咨询服务。

●基本要求:
(1)设计你所在的学校的校园平面图,所含景点不少于5个。

以图中顶点表示校内各景点,存放景点的名称、代号、简介等信息;以边表示路径,存放路径长度
等相关信息。

(2)为来访客人提供图中任意景点相关信息的咨询。

(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

●测试数据
由同学们根据实际情况指定
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

实验6 查找及应用
题目一:顺序、折半查找
1 实验目的:熟悉并掌握顺序、折半查找的过程及方法。

2 实验内容:
(1)在输入数组的记录中顺序查找所需的数据;
(2)对已有的有序序列进行折半查找;
(3)比较以上两种方法的查找次数。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

题目二:电话号码的查询
1 实验目的:熟练并掌握查找的过程、方法和应用
2 实验内容:
●问题描述:
设计一个电话号码查找程序,为来查询人提供电话号码的查询服务。

●基本要求:
(1)以你所在的班级为查询范围,假设人名为中国人姓名的汉语拼音形式。

人数不能少
于10人。

(2)完成根据人名来查找相应的电话号码。

测试数据
由同学们根据实际情况指定
3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

实验7 排序及应用
题目一:统计成绩
1 实验目的:掌握常用的排序方法,深刻理解排序的定义和各种排序方法的特点,并能灵活应用。

2 实验内容:
(1)输入n个学生的考试成绩,每个学生信息由姓名与分数组成;
(2)选择一种排序算法,按分数高低次序,打印出每个学生的名次,分数相同的为同一名次。

(3)按名次给出每个学生的姓名与分数。

3 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

相关主题