2014数据结构实验指导书 doc 联系客服

发布时间 : 星期六 文章2014数据结构实验指导书 doc更新完毕开始阅读

3、熟悉构造最小生成树的Prim算法; 4、单源最短路径的Dijkstra算法。

【实验原理】

图是一种比树更为复杂的数据结构。图的逻辑结构是数据元素之间多对多的联系,在图中的每一个结点都可能和其它的结点相关联。图的应用范围十分广泛,诸如电子线路分析、系统工程、寻找最短路径、人工智能、计算机科学、化学、控制论以及社会科学等领域。相对前面的数据结构而言,图的内容比较难。

通常有两种遍历图的方法:深度优先搜索(DFS)遍历和广度优先搜索(BFS)遍历。深度优先搜索类似于树的先序遍历,是树的先序遍历的推广,是一个递归过程。广度优先遍历类似于树的按层次遍历过程。

最小生成树是用于构造连通图的最小代价生成树,在交通、通信等领域有着广泛的应用,最小生成树有着很多种算法,典型的有Prim算法和Kruskal算法。

从单个源点到其余各顶点的最短路径算法的应用比较广泛,尤其是在交通联系方面。典型的实现算法有Dijkstra算法。

【实验要求】

实验课题:

0120

24

25381 11337456 图2

2324144 图1

09

5图3

实验任务:

对图1 — 图3,实现以下操作,记录并分析相应的试验结果: ① 输出相应图的邻接矩阵;

② 输出相应图的DFS结果;

17

③ 输出相应图的BFS结果。

选做:对图3,用Dijkstra算法求出其单源最短路径。使用Prim算法求出其最小生成树。

开始 访问顶点Vi+1 开始

依次搜索Vi+1的邻接点读入n个顶点

递归访问顶点N Vj+1访问过? 邻接矩阵初始化 Y Vi+1的邻接点都访问读入e条边

N Y 结束 结束 图4 图的邻接矩阵表示法流程图 图5 图的深度优先遍历算法流程图

参考源文件:

用C版本的同学可参考以下文件,了解其内容和具体算法的实现。

graph.h:声明了图相关函数的函数原型,graphutil.c:定义了生成和打印图的函数。剩余实现各算法的源文件命名的规律是:

开头的gr:表示图算法 bfs: Breadth First Search dfs: Width First Search dijk: Dijkstra 算法 prim: Prim 算法

l 和 m:分别表示该程序中的图是用邻接表或邻接矩阵表示的。

图的输入和gph文件的理解

在这个框架里,图用文本文件(*.gph)来描述(图的结点数目,有向图还是无向图,图中的边的描述,边是否带权值等信息),有了这样的描述文件,就可以用函数createGraph来创建图的对象。可以参考grtestm.cpp和grtestl.cpp。

创建这种文件来描述图,要注意以下规则:

1)、以“#”开头的行表示注释(文本中任意行从“#”开始到该行结束都表示注释);

18

2)、文本文件中有效的第一行表示结点数目;

3)、文本文件中有效的第二行表示图是有向还是无向,“D”表示有向图,“U”表示无向图; 4)、文本文件中有效的第三行开始表示图中的边,每条边用一行表示;

如果是无权值图,则每行有两个数值,数值之间用空格隔开,第一个数值表示边的起始结点,第二个数值表示边的终止结点,并且第二个数值后不能再有空格或者其它数值。(注意,结点编号一定用数字表示,且编号从0开始);

如果是带权值图,则每行有三个数值,数值之间用空格隔开,第一个数值表示边的起始结点,第二个数值表示边的终止结点,第三个数值表示边的权值。(注意,结点编号一定用数字表示,且编号从0开始);

5)、做实验时注意先把自己需要用到的图,用该gph文件规则描述后使用;

6)、若系统中需要用到相应的图文件,则对于.net编译器,图文件的输入在“项目”菜单下的“工程名属性”栏目中的“调试”页面下的“命令参数”编辑框里填入文本图的文件名(全名)即可对该图文件进行相应的处理。

做实验时对图1 — 图3,要先创建与上面三个图对应的gph文件,分别保存为test1.gph、test2.gph和test3.gph,对格式还不熟悉的,可参考随源程序附带的*.gph文件,如bkfig91.gph文件用来存储教材中的图9.1。

19

综合设计考核

【实验目的】

通过一个实际问题的解决,来考察学生对数据结构课程算法的设计与实现的掌握程度。

【实验要求】

(实验采用C语言编程,可以使用课本提供的基本数据结构的源码) 具体实验内容由由实验指导老师决定。

【实验内容与步骤】

1根据给出实验课题,完成自己的算法设计(以书写为准)流程或方法,并编程具体实现。(可使用教材给出的相关资源代码)。 2完成后举手示意让老师验收。

3回去后完成自己的实验报告。实验报告中应有算法的分析、实现以及遇到的问题及其解决方案和实验后的心得。最后一次实验报告的时间届时通知。 4 在综合设计实验过程中严禁互相讨论交流,严禁携带资料进入。

20