3. 图的遍历 按照访问相邻顶点的顺序有两种遍历图的方法: 深度优先搜索(Depth First Search─-DFS) 广度优先搜索(Breadth First Search─-BFS) 它们对无向图和有向图都适用。 许多有关图的算法,如求图的连通性问题、拓扑排序、求关键路径等都是在深度优先搜索和广度优先搜索的基本方法上建立起来的。 3. 图的遍历 然而,图的遍历要比树的遍历复杂得多,这是因为图的任一顶点都可能和其余顶点相邻接,所以在访问了某个顶点之后,可能沿着某条路径又回到该顶点上。 例如图1.44(a)中G1,由于图中存在回路,因此在访问了结点1→2→4→3之后,沿着边(3,1)又可访问到结点1。 为了避免同一顶点被访问多次,在遍历图的过程中,必须记下每个已访问过的顶点。为此,设一辅助数组 vis[n],初值为零,一旦访问了顶点i,便置vis[i]为1。 下面详细介绍上述两种遍历方法。 1 2 4 3 3. 图的遍历 (1)深度优先搜索 ●假设初始状态是图中所有顶点未曾被访问, ●从某一顶点Vi开始访问,并标记Vi已被访问过(即vis[Vi]=1); ●再按深度方向选择一个与Vi邻接的未被访问的顶点Vj访问之,并标记Vj已被访问过(即vis[Vj]=1), ●依次类推,重复上述过程。 ●当遇到一个所有邻接于它的顶点都被访
原创力文档

文档评论(0)