以下問題在塞奇威克和韋恩本書算法被發現在Java中:拓撲爲了使用BFS
4.2.19拓撲排序和BFS。解釋爲什麼以下算法不一定會產生拓撲順序:運行BFS,並通過增加到它們各自源的距離來標記頂點。
我試圖證明它找到一個反例。但是,每次嘗試,我都會得到一個拓撲順序。 我的意思是,我不明白爲什麼這不起作用:如果一個頂點的源頭出現在它之前,爲什麼我們沒有一個拓撲順序?
我認爲要證明這一點,我們需要找到一個其來源之前的頂點,但我不能。
任何人都有反例嗎?提前致謝!
PS:這不是功課
@Edit:我試圖樣1 <的哈密爾頓路徑 - 2 < - 0 < - 3 < - 4,它給出0 3 4 2 1 ,但改變0 3和4的位置給了我一個拓撲順序(但是,按照我得到的順序,它不是)。那麼我不確定這是否是一種拓撲順序。
rank是什麼定義?我只知道樹木的等級。而且,如果D出現在A的鄰接列表上,那麼D可能會出現在C之前,對嗎? – Giiovanna
Rank可以被認爲是一個節點在BFS中處理的「級別」。 A會有1級,B和D會有2級,等等。 – adao7000
好的,非常感謝! – Giiovanna