複習 拓撲排序

2022-03-13 06:23:16 字數 1035 閱讀 4000

拓撲排序並不很常見,但也不容小覷,所以也要認真去做,不能馬虎。

來一發定義:

拓撲排序演算法,只適用於aov網(有向無環圖)。

把aov網中的所有活動排成乙個序列, 使得每個活動的所有前驅活動都排在該活動的前面,這個過程稱為「拓撲排序」,所得到的活動序列稱為「拓撲序列」。

乙個aov網的拓撲序列是不唯一的,例如下面的這張圖,它的拓撲序列可以是:abcde,也可以是acbde,或是adbce。在下圖所示的aov網中,工程b和工程c顯然可以同時進行,先後無所謂;但工程e卻要等工程b、c、d都完成以後才能進行。

【例4-12】、家譜樹

【問題描述】

有個人的家族很大,輩分關係很混亂,請你幫整理一下這種關係。

給出每個人的孩子的資訊。

輸出乙個序列,使得每個人的後輩都比那個人後列出。

【輸入格式】

第1行乙個整數n(1<=n<=100),表示家族的人數。

接下來n行,第i行描述第i個人的兒子。

每行最後是0表示描述完畢。

【輸出格式】

輸出乙個序列,使得每個人的後輩都比那個人後列出。

如果有多解輸出任意一解。

【輸入樣例】50

4 5 1 0

1 05 3 0

3 0【輸出樣例】

2 4 5 3 1

由題可知,當每個點的入度為0時,就輪到它輸出了,然後把每個相連點的入度減一。

#includeusing

namespace

std;

int r[101],c[101],a[101][101

];int num,m,n,x,y,ans[105],tot = 0

,temp;

intmain()

else

break

; }

for(int i = 1;i <= n;i++)

}do }

}while(num !=n);

return0;

}

python 拓撲排序 Python 拓撲排序

python 拓撲排序 在圖論中,由乙個有向無環圖的頂點組成的序列,當且僅當滿足下列條件時,稱為該圖的乙個拓撲排序 英語 topological sorting 每個頂點出現且只出現一次 若a在序列中排在b的前面,則在圖中不存在從b到a的路徑。print 拓撲排序結果 g.topologicalso...

python 排序 拓撲排序

在電腦科學領域中,有向圖的拓撲排序是其頂點的先行排序,對於每個從頂點u到頂點v的有向邊uv,在排序的結果中u都在v之前。如果圖是有向無環圖,則拓撲排序是可能的 為什麼不說一定呢?圖論 是組合數學的乙個分支,它和其他分支比如 群論 拓撲學 矩陣論有著密切的關係。圖是圖論的主要研究物件。圖是由若干給定的...

拓撲排序演算法

對許多資料結構教材實在不滿意,至少我是看不懂 至於拓撲排序演算法,教材上那些偽 真真教人頭暈。只寫了幾個struct結構,我根本看不出這是鄰接表。如果給出乙個清晰明了的圖,一切不就簡單了?總之,關鍵就是建立乙個鄰接表。然後利用這個表進行拓撲排序。邊表結點宣告 typedef struct edgen...