拓撲排序

在計算機科學領域 ， 有向圖的拓撲排序或拓撲定序是對其頂點的一種線性排序 ， 使得對於從頂點到頂點的每個有向邊 ， 在排序中都在之前 。 例如 ， 圖形的頂點可以表示要執行的任務 ， 並且邊可以表示一個任務必須在另一個任務之前執行的約束 ； 在這個應用中 ， 拓撲排序只是一個有效的任務順序 。 當且僅當圖中沒有定向環時 （ 即有向無環圖 ） ， 纔有可能進行拓撲排序 。 任何有向無環圖至少有一個拓撲排序 。 已知有算法可以在線性時間內 ， 構建任何有向無環圖的拓撲排序 。 在圖論中 ， 由一個有向無環圖的頂點組成的序列 ， 當且僅當滿足下列條件時 ， 才能稱爲該圖的一個拓撲排序  ： 序列中包含每個頂點 ， 且每個頂點只出現一次 ； 若A在序列中排在B的前面 ， 則在圖中不存在從B到A的路徑 。