PAGE 6
PAGE 2
《数据结构》
实验指导书
计算机专业实验中心
2014年9月目 录
TOC \o "1-3" \h \z \u
HYPERLINK \l "_Toc399337376" 实验一、线性表的实现及操作(一) PAGEREF _Toc399337376 \h 5
HYPERLINK \l "_Toc399337377" 实验二、线性表的实现及操作(二) PAGEREF _Toc399337377 \h 8
HYPERLINK \l "_Toc399337378" 实验三、线性表的应用 PAGEREF _Toc399337378 \h 13
HYPERLINK \l "_Toc399337379" 实验四、二叉树的实现及操作 PAGEREF _Toc399337379 \h 14
HYPERLINK \l "_Toc399337380" 实验五、二叉树的应用 PAGEREF _Toc399337380 \h 19
HYPERLINK \l "_Toc399337381" 实验六、图的遍历操作 PAGEREF _Toc399337381 \h 20
HYPERLINK \l "_Toc399337384" 实验七、图的应用 PAGEREF _Toc399337384 \h 27
《数据结构》上机实验的内容和要求
通过上机实验加深对课程内容的理解,增加感性认识,提高程序设计、开发及调试能力。
序号
实 验
名 称
内 容
提 要
每组
人数
实验
时数
实验
要求
实验
类别
分值(总100分)
1
线性表的实现及操作(一)
顺序表建立、插入、删除等基本操作
1
2
必做
设计
15分
2
线性表的实现及操作(二)
单链表的建立、插入、删除等基本操作
1
2
必做
设计
15分
3
线性表的应用
约瑟夫环问题或者长整数相加的设计与实现
1
2
选作
综合
10分
4
二叉树的实现及操作
二叉树的基本操作:树的建立、前序、中序、后序遍历
1
2
必做
设计
20分
5
二叉树的应用
赫夫曼树
1
2
选作
综合
10分
6
图的遍历
图的遍历:深度优先和广度优先
1
2
必做
设计
20分
7
图的应用
最短路径算法:Dijkstra算法和Floyd算法
1
2
选作
综合
10分
8
算法性能测试、总结和答疑
对实验课涉及到的算法进行性能测试、对实验所遇到的问题进行总结和答疑
1
2
本实验指导书适用于16学时《数据结构》实验课,实验项目具体内容如下:
其中,第1、2、4、6实验项目为设计性实验,的其内容为程序代码分析与调试,要求每位同学在每次实验课结束前通过检查。这部分实验应撰写1份实验报告,总分70分。
第3、5、7实验项目为综合应用性实验,学生根据自己的兴趣和基础选作。这三个实验要求学生利用所学的理论知识解决实际问题,每一个实验应撰写一份实验报告,每个实验10分。
此实验指导书也适用于8学时《数据结构》实验课,要求完成第1、2、4、6实验项目。
实验报告要求
请按照实验教师要求,按时提交实验报告电子版文件。
实验报告格式可个性化定义,内容包括但不限于以下内容:
题目、姓名、学号、班级(首页)
需求分析:陈述程序设计的任务,强调程序要做什么,明确规定:
输入的形式和输出值的范围;
输出的形式;
程序所能达到的功能;
测试数据:包括正确的输入输出结果和错误的输入及输出结果。
概要设计:说明用到的数据结构定义、主程序的流程及各程序模块之间的调用关系。
详细设计:提交带注释的源程序或者用伪代码写出每个操作所涉及的算法。
调试分析:
调试过程中所遇到的问题及解决方法;
算法的时空分析;
经验与体会。
用户使用说明:说明如何使用你设计的程序,详细列出每一步操作步骤。(如果程序操作简单,可略去)
测试结果:列出对于给定的输入所产生的输出结果。(若有可能,测试随输入规模的增长所用算法的实际运行时间的变化)
8、总结
实验一、线性表的实现及操作(一)
一、实验目的
了解和掌握线性表的顺序存储结构;掌握用C语言上机调试线性表的基本方法;掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算,以及对相应算法的性能分析。
二、实验要求
给定一段程序代码,程序代码所完成的功能为:(1)建立一个线性表;(2)依次输入数据元素1,2,3,4,5,6,7,8,9,10;(3)删除数据元素5;(4)依次显示当前线性表中的数据元素。假设该线性表的数据元素个数在最坏情况下不会超过100个,要求使用顺序表。
程序中有3处错误的地方,有标识,属于逻辑错误,对照书中的代码仔细分析后,要求同学们修改错误的代码,修改后上机调试得到正确的运行结果。
三、程序代码
#incl