1. 程式人生 > >有向圖的強連通分量

有向圖的強連通分量

我們使用類比方法,在Tarjan演算法中,每次mlik[i]的修改都是由於環的出現(不然,mlik[i]的值不可能變小),每次出現環,在這個環裡面只剩下一個mlik[i]沒有被改變(深度最低的那個),或者全部被改變,因為那個深度最低的節點在另一個環內。那麼Gabow算 法中的第二堆疊變化就是刪除構成環的節點,只剩深度最低的節點,或者全部刪除,這個過程是通過出棧來實現,因為深度最低的那個頂點一定比前面的先訪問,那 麼只要出棧一直到棧頂那個頂點的訪問時間不大於深度最低的那個頂點。其中每個被彈出的節點屬於同一個強連通分量。那有人會問:為什麼彈出的都是同一個強連 通分量?因為在這個節點訪問之前,能夠構成強連通分量的那些節點已經被彈出了,這個對Tarjan
演算法有了解的都應該清楚,那麼Tarjan演算法中的判斷根我們用什麼來代替呢?想想,其實就是看看第二個堆疊的頂元素是不是當前頂點就可以了。