文档详情

图的深度优先搜索遍历算法分析及其应用.pdf

发布:2024-11-30约7.26千字共8页下载文档
文本预览下载声明

重庆邮电大学

数学大类专业

2008级《数学建模与数学实验》课程设计

设计题目:图的深度优先搜索遍历算法分析及其应用

设计时间:2010.9.72010.9.12

设计成绩:

姓名:

班级:

学号:

指导教师:

图的深度优先搜索遍历算法分析及其应用

摘要:

文章介绍了图论,图的基本概念及其图的表示方法。详细的分析了图中以邻接表为

存储结构进行的图的深度优先搜索遍历的算法,并且在VC++环境中实现其算法的过程,对

运行记过做了一定量的分析,最后介绍了基于该算法的一些应用。

关键词:图;深度优先搜索;遍历;算法

图论〔GraphTheory〕是数学的一个分支。它以图为研究对象。图论中的图

是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事

物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具

有这种关系。

图(Graph)是一种较线性表和树更复杂的数据结构,图形结构中,结点之

间的关系可以是任意的,图中任意两个数据元素之间都可能相关。因此,在研究

有关图的问题时,要考虑图中每个顶点的信息,访问图中的各个顶点,而访问图

中各个顶点的操作过程即使图的遍历,图的遍历算法是求解图的连通性问题,拓

扑排序和求关键路径等算法的基础。

1图的三元组定义

图G是一个三元组由集合V,E和关联函数组成,记为:G=(V,E,W(G))。

其中V是顶点的集合,表示V(G)={V1,V2,V3,……Vn},V(G)≠NULL。

E是V中的点偶对的有穷集,表示为E(G)={e1,e2,e3……em},其中ei为V

j,Vt或{Vj,Vt},若ei为{Vj,Vt},称ei为以Vj和Vt为端点的无向边;若ei

为Vj,Vt,称ei为以Vj为起点,Vt为终点的有向边;W(G)称为E→VxV的

关联函数。

2图的存储结构

图的存储结构除了要存储图中各个顶点的本身的信息外,同时还要存储顶点

与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元

素在存储区中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,

故物理表示方法很多。常用的图的存储结构有邻接矩阵、邻接表、十字链表和邻

接多重表。邻接表是图的一种链式存储结构。对图的每个顶点建立一个单链表(n

个顶点建立n个单链表),第i个单链表中的结点包含顶点Vi的所有邻接顶点。

V1V2

V3

V4V5

图1无向图G

该图的G的邻接表表示如下:

为了便于理解,本文以无向图G作为具体示例(如图1所示),给出以邻接

表进行存储的图的数据结构。

现将图G的各顶点进行编号,其对应的邻接表如图2所示:

V131∧

V2420∧

V3431∧

V4

2

0∧

V5

2

1∧

显示全部
相似文档