实验指导-数据结构B 下载本文

内容发布更新时间 : 2024/9/27 9:28:44星期一 下面是文章的全部内容请认真阅读。

附录 综合实验

1、实验目的

本课程的目标之一是使得学生学会如何从问题出发,分析数据,构造求解问题的数据结构和算法,培养学生进行较复杂程序设计的能力。本课程实践性较强,为实现课程目标,要求学生完成一定数量的上机实验。从而一方面使得学生加深对课内所学的各种数据的逻辑结构、存储表示和运算的方法等基本内容的理解,学习如何运用所学的数据结构和算法知识解决应用问题的方法;另一方面,在程序设计方法、C语言编程环境以及程序的调试和测试等方面得到必要的训练。

2、实验基本要求:

1)学习使用自顶向下的分析方法,分析问题空间中存在哪些模块,明确这些模块之间的关系。

2)使用结构化的系统设计方法,将系统中存在的各个模块合理组织成层次结构,并明确定义各个结构体。确定模块的主要数据结构和接口。

3)熟练使用C语言环境来实现或重用模块,从而实现系统的层次结构。模块的实现包括结构体的定义和函数的实现。

4)学会利用数据结构所学知识设计结构清晰的算法和程序,并会分析所设计的算法的时间和空间复杂度。

5)所有的算法和实现均使用C语言进行描述,实验结束写出实验报告。

3、实验项目与内容:

1、线性表的基本运算及多项式的算术运算

内容:实现顺序表和单链表的基本运算,多项式的加法和乘法算术运算。 要求:能够正确演示线性表的查找、插入、删除运算。实现多项式的加法和乘法运算操作。

2、二叉树的基本操作及哈夫曼编码译码系统的实现

内容:创建一棵二叉树,实现先序、中序和后序遍历一棵二叉树,计算二叉树结点个数等操作。哈夫曼编码/译码系统。

要求:能成功演示二叉树的有关运算,实现哈夫曼编码/译码的功能,运算完毕后能成功释放二叉树所有结点占用的系统内存。

3、图的基本运算及智能交通中的最佳路径选择问题

内容:在邻接矩阵和邻接表两种不同存储结构上实现图的基本运算的算法,实现图的深度和宽度优先遍历算法,解决智能交通中的路径选择问题。设有n个地点,编号为0~n-1,m条路径的起点、终点和代价由用户输入提供,寻找最佳路径方案(例如花费时间最少、路径长度最短、交通费用最小等,任选其一即可)。 要求:设计主函数,测试上述运算。

4、各种内排序算法的实现及性能比较

内容:验证教材的各种内排序算法。分析各种排序算法的时间复杂度。 要求:使用随机数产生器产生较大规模数据集合,运行上述各种排序算法,使用系统时钟测量各算法所需的实际时间,并进行比较。

4、实验报告范例:

实验╳ ╳╳╳╳╳

班级____________姓名____________学号____________日期____________ 1. 实验目的:

╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳ (扼要而准确地描述所求解的实验项目的目的。)

2. 实验任务:

╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳

(明确实验项目的任务和演示程序的主要功能。) 3. 实验内容:

╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳

(使用模块和流程图表示系统分析和设计的结果,描述各模块之间的层次

结构,给出函数之间的调用关系和数据传递方式,给出核心算法的C源代码,并加上详细注释,分析主要算法的时间复杂度,必要时分析空间复杂度,给出算法分析的计算过程。)

4. 实验过程描述:

╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳ (列出实验所用的测试用例和相应的程序运行结果(需要程序运行结果的

屏幕截图),总结本次实验,包括对测试结果的分析,测试和调试过程遇到问题的回顾和分析,软件设计与实现的经验和体会,进一步改进的设想。)