有向無環圖的拓撲排序

首先,介紹一下有向無環圖。對象

從字面上理解:blog

  1. 爲有向圖
  2. 無環

舉例,排序

    1. 有向的二叉樹是特殊的有向無環圖。
    1. 如圖(關鍵部分)

對於有向圖來講,深度優先遍歷下,若從head出發到結束時出現一條從head的下級節點mid開始指向head的一條路徑,則一定此圖有環。二叉樹

拓撲排序

  • 首先,拓撲排序的對象確定是有向無環圖中左右的點。
  • 其次,若存在路徑從a指向b,則拓撲排序結果中a必定在b的前面。
  • 最後,拓撲排序的排序規則(沒有那麼抽象),依次將入度爲零的點拿出去,並抹掉它的出度線。

image

有圖爲例

通過第一次篩選得 A遍歷

image

第二次篩選得 Bim

image

第三次篩選得Dimg

image

第四次篩選的 C,F(若無特殊要求,C,F的順序是隨機的)(這裏咱們按照字母表來)co

image

最後一個是F
因此綜上,拓撲排序爲 A B D CF E
好,簡單明瞭,幫助理解概念,代碼仍是要本身敲哦,嘿嘿嘿。ps

相關文章
相關標籤/搜索