您的当前位置:首页成都信息工程大学《数据结构》实验指导书

成都信息工程大学《数据结构》实验指导书

2021-01-24 来源:乌哈旅游


《数据结构》

实验指导书

成都信息工程大学

计算机学院

目 录

《数据结构》 .............................................................................................................................................................................. 0 实验一 顺序表实验 .................................................................................................................................................................... 1 实验二 单链表实验 .................................................................................................................................................................... 3 实验三 栈的实验 ........................................................................................................................................................................ 5 实验四 二叉树实验 .................................................................................................................................................................... 7 实验五 图的实验 ........................................................................................................................................................................ 9 实验六 查找与排序实验 .......................................................................................................................................................... 11

实验一 顺序表实验

一、实验环境

PC 1台,Turbo C/C++或Borland C/C++或Visual C++软件。

二、实验目的

1. 掌握线性表顺序存储结构的实现

2. 掌握顺序表基本运算的实现

3. 理解顺序表的随机存取特性

三、实验内容

1. 编程实现顺序表的创建InitList_Sq、打印PrintList_Sq、定位ListInsert_Sq、删除ListDelete_Sq等基本运算。

2. 用顺序表来表示集合A和B,求:A = A  B。

四、实验步骤

1. 建立\"SqList.h\"文件,用于存放以下2-5内容

2. 定义线性表的顺序存储类型(顺序表)

第 1 页 共 14 页

LocateElem_Sq、插入3. 实现顺序表的基本运算

4. 其他辅助函数

5. 求A = A ∪ B

6. 编写主函数测试各功能(放入\"SqList_Test.cpp\"文件)

第 2 页 共 14 页

实验二 单链表实验

一、实验环境

PC 1台,Turbo C/C++或Borland C/C++或Visual C++软件。

二、实验目的

1. 掌握线性表链式存储结构的特点

2. 掌握单链表存储结构及基本运算的实现

3. 掌握顺序表和链表的适用场合

三、实验内容

1. 编程实现(带头结点的)单链表的创建InitList_Link、打印PrintList_Link、插入ListInsert_Link、删除ListDelete_Link、定位LocateElem_Link等基本运算。

2. 编写算法将两个带头结点的有序单链表La、Lb合并成一个带头结点的有序单链表Lc。

四、实验步骤

1. 建立\"LinkList.h\"文件,用于存放以下2-5内容

2. 定义带头结点的单链表类型

第 3 页 共 14 页

3. 实现单链表的基本运算

4. 其他辅助函数

5. 实现保序归并(Lc = La + Lb)

6. 编写主函数测试各功能(放入\"LinkList_Test.cpp\"文件)

第 4 页 共 14 页

实验三 栈的实验

一、实验环境

PC 1台,Turbo C/C++或Borland C/C++或Visual C++软件。

二、实验目的

1. 掌握栈的特点及其存储结构的实现

2. 掌握栈的基本运算的实现

3. 运用栈解决实际问题

三、实验内容

1. 编程实现栈及其基本操作。

2. 编程括号匹配检验算法。

四、实验步骤

1. 建立\"Stack.h\"文件,用于存放以下2-5内容

2. 定义栈类型(顺序栈或链栈选其一)

第 5 页 共 14 页

3. 实现栈的基本运算

4. 其他辅助函数

5. 实现括号匹配检验算法

6. 编写主函数测试各功能(放入\" Stack_Test.cpp\"文件)

第 6 页 共 14 页

实验四 二叉树实验

一、实验环境

PC 1台,Turbo C/C++或Borland C/C++或Visual C++软件。

二、实验目的

1. 掌握二叉树的链式存储结构:二叉链表

2. 掌握二叉树最重要的运算:遍历

三、实验内容

1. 建立链式结构的二叉树。

2. 实现先序、中序和后序遍历的递归算法。

3. 实现中序遍历非递归算法。

四、实验步骤

1. 建立\"BiTree.h\"文件,用于存放以下2-5内容

2. 定义二叉链表类型

第 7 页 共 14 页

3. 实现二叉链表的建树运算和释放运算

4. 实现先中后三种遍历的递归算法

5. 实现中序遍历非递归算法(若用到栈,可利用实验三的结果或重新设计)

6. 编写主函数测试各功能(放入\" BiTree_Test.cpp\"文件)

第 8 页 共 14 页

实验五 图的实验

一、实验环境

PC 1台,Turbo C/C++或Borland C/C++或Visual C++软件。

二、实验目的

1. 掌握图的两种常用存储方式:邻接矩阵和邻接表

2. 掌握图的DFS和BFS运算和其他基本运算

3. 掌握拓扑排序算法

三、实验内容

1. 实现图的邻接矩阵类型和邻接表类型及其基本运算。

2. 分别实现两种存储方式下的DFS和BFS算法。

3. 分别实现两种存储方式下的拓扑排序算法。

四、实验步骤

1. 建立\"MGraph.h\"文件,用于存放以下2-5内容

第 9 页 共 14 页

2. 定义邻接矩阵类型

3. 实现邻接矩阵类型的基本运算(包括建图运算)

4. 实现邻接矩阵类型的DFS和BFS算法

5. 实现邻接矩阵类型的拓扑排序算法(若用到栈,可利用实验三的结果)

6. 编写主函数测试4-5功能(放入\" MGraph_Test.cpp\"文件)

7. 建立\"AGraph.h\"文件,用于存放以下8-11内容

8. 定义邻接表类型

9. 实现邻接表类型的基本运算(包括建图运算和销毁运算)

10.实现邻接表类型的DFS和BFS算法

11.实现邻接表类型的拓扑排序算法(若用到栈,可利用实验三的结果)

12.编写主函数测试10-11功能(放入\" AGraph_Test.cpp\"文件)

第 10 页 共 14 页

实验六 查找与排序实验

一、实验环境

PC 1台,Turbo C/C++或Borland C/C++或Visual C++软件。

二、实验目的

1. 掌握二分查找的含义及实现

2. 掌握排序算法的实现

3. 掌握算法的效率分析

三、实验内容

1. 实现二分查找算法。

2. 实现直接插入排序算法和快速排序算法。

3. 分析各算法的时空效率。

四、实验步骤

1. 建立\"Sort.h\"文件,用于存放以下2-6内容

第 11 页 共 14 页

2. 定义顺序表类型(用静态或动态分配方式均可)

3. 实现建表运算(若表类型采用动态,则还需实现销毁运算)

4. 实现直接插入排序算法

5. 实现快速排序算法

6. 实现二分查找算法

7. 编写主函数测试各功能(放入\" Sort_Test.cpp\"文件)

8. 分析4-6算法的时空效率

第 12 页 共 14 页

因篇幅问题不能全部显示,请点此查看更多更全内容