图的深度优先遍历的C语言实现.pdf
维普资讯
九 江 职 业 技 术 学 院 学 报
JournalofJiujiangVocational&TechnicalCollege 2004.2
· 26 ·
图的深度优先遍历的C语言实现
杜 恒 ‘龚茜茹
(河南32业职业技术学院,河南南阳 473009)
擒 要 图的深度优先遍历。是对图中的每个顶点进行访同且不能重复访同,而我们要遍历图。不是在它的逻辑结
构上来实现,而是要在 内存 中来实现,在这里我们可以先把图采用邻接表方式将 图存储起来,然后进行深
度优先遍历。
关键词 数据结构;图的遍历;邻接表
中圈分类号:TP312C 文献标识码:B 文章编号:1009—9522 (2004)02—0026—03
TheC LanguageofDepth——FirstErgodicityOfGraph
DUHeng G0NGQian—ru
(HenanPolytechnicInstitute,Nanyang,Henan。473009)
Abstract:Thedepth—firstergodidtyofgraphistOvisitevery igen eofthegraph~ tedly.It'sac·
complishedinmemonyratherthaninlogicstructul~.Sowecan,savethegraphbywayofadjaa listandthen
tx~ndtlctthedep出一fi啾 ergodicity.
Keywords_-Datas锄Ictllre,Ergodlcityofthegraph。Adjacencylist
引育 指针域。把和该顶点有关系的所有顶点用一个链表链接到
图是一种非常重要的数据结构。它牵涉到图论的许多 它的后面。因为图有无向图和有向图之分,对于无向图,
知识。在 日常生活中得到了非常广泛的应用。在研究图的 后面连接所有这个顶点连接的顶点;对于有向图只将从一
时候。必须要考虑每个顶点的信息。了解图中各个顶点的 个顶点出发的弧的弧头指向的这些顶点 (邻接点)连接到
相关信息后才能进一步应用图去研究某些问题。访问图中 它的后面。
下面我们举一个例子来说明这个问题。
的所有顶点的过程就是图的遍历。有时也称图的访问。
在这里我们用一个有向图来说明,如图1所示的有向
借助计算机来描绘图的问题。必须首先把图存储在计
图。
算机的内存中,然后再去访问图中的每个顶点的信息。访
如图1所示的有向图我们现在要在内存中创建一个邻
问图也就是遍历图。按照图的遍历的规则,要求在对图进
接表,按照图中所有各个顶点的序号,我们首先构造顶点
行遍历的时候。要访问图中的所有顶点而且只能访问一次。
一 、 图的邻接表存储
要对图进行遍历。首先要将图存储起来 。图有多种存
储方式:数组表示法、邻接表、多重邻接表、十字链表等。
下面我们主要介绍用邻接表存储的方法。
邻接表是一种顺序和链式结合的存储方式,首先要为
图的所有顶点构造一个顶点向量,我们知道在图当中,顶
点与硬点之闽的关系菲常复杂,任何两个硬点之闫都哥兰
有关系。邻接表这种存储方式就是在顶点向量中增加一个 图 1
收稿 日期 :2003一l2—24
·作者简