1. 程式人生 > >圖論學習二之Topological Sort(拓撲排序)

圖論學習二之Topological Sort(拓撲排序)

src info directed com 遞歸 ica -- 遞歸版 拓撲

      拓撲排序 Topological-Sort

一個有向無環圖G進行
拓撲排序, 是將G中所有
頂點排成一個性序列
使 中 任 意 弧
<u, v>Eu在序列中出
v之前

有向無環圖
Directed Acyclic GraphDAG

拓撲排序保證所有的有向邊在序列中都是從左邊
結點指向右邊結點
如果圖是有回路的, 就不可
能存在這樣的線性
序列

      拓撲排序算法 非遞歸版

一開始,對那些入度為0的點而言。
不存在什麽點必須排在它們前面,
可以隨便排

(可以排在最前面),後
面的點受他們的限制。


每次刪去一個入度為0的點以及這
個點出發的所有邊。

技術分享圖片

      另一種拓撲排序算法

使用dfs算法。
每當訪問完一個結點,就把這個結點
加入到拓撲排序結果序列中。
註意這個順序是逆序的。
因此,我們從後往前加 topo[n--] = u

歐拉回路算法也用到了類似的思想。

技術分享圖片

圖論學習二之Topological Sort(拓撲排序)