圖的深度優先遍歷

申明

       本文的目地是對算法導論中深度優先的內容作一筆記,總體更像該章節的剪輯以及總結。算法

簡介

  與圖的廣度優先遍歷比較:spa

   廣度優先遍歷更多的是可以反應圖中點的距離,而深度優先遍歷則主要是反映圖的形狀。
搜索

代碼以及圖示

性質

括號定理遍歷

在一個(有向或無向)圖G=(V,E)的任何深度優先搜索中,任意兩頂點u, v 知足下列性質im

  1. 區間[d[u], f[u]]和區間[d[v], f[v]]徹底不相交,且都不是對方的後裔總結

  2. 區間[d[u], f[u]] 徹底包含於區間d[[v], f[v]]中,且 u是 v的後裔img

  3. 區間[d[v], f[v]] 徹底包含於區間d[[u], f[u]]中,且 v是 u的後裔di


後裔區間嵌套display

在一個(有向或無向)圖G=(V,E)的任何深度優先搜索中,任意兩頂點u, v ,若v是u的後裔則算法導論

d[u] < d[v] < f[v] < f[u]


白色路徑定理

在一個(有向或無向)圖G=(V,E)的任何深度優先搜索中,任意兩頂點u, v ,若v是u的後裔則當且僅當於時刻的d[u]發現u時,能夠從頂點u出發通過一條白色路徑到達v

邊的分類

定義

  1. 樹邊:在深度優先森林Gπ總共的邊,若是頂點v是探尋邊(u,v)時首次被發現的,那麼(u,v)就是一條樹邊

  2. 反向邊:深度優先樹中,鏈接頂點u到它的某一祖先的那些邊。有向圖出現的自環也是反向邊

  3. 正向邊:在深度優先搜索中,鏈接u和某個後裔的非樹邊(u,v)

  4. 交叉邊:同一棵深度優先搜索樹的兩個頂點之間,條件是其中一個頂點不是另外一個頂點的祖先。也能夠在不一樣度優先搜索樹之間的頂點之間

性質

  1. 樹邊或前向邊,當且僅當d[u]<d[v]<f[v]<f[u]

  2. 反向邊,當且僅當d[v]<=d[u]<f[u]<=f[v]

  3. 交叉邊,當且僅當d[v]<f[v]<d[u]<f[u]

結合僞代碼顏色變化分析

對於每條邊 (u,v),當該邊第一次被搜索到時,根據點v的顏色進行區分

  1. 白色:  樹邊

  2. 灰色:  反向邊

  3. 黑色:  正向邊或交叉邊

相關文章
相關標籤/搜索