[英]Singly connected directed graphs
根據CLRS第3版中可用的定義,單個連接的有向圖是對於每對頂點(u,v),從u-> v最多有1個唯一路徑的有向圖。 現在我讀過的大部分答案都說明我們從圖中的每個頂點運行DFS,如果在任何情況下我們發現了Cross邊緣或Forward邊緣 ,那么圖形不是單獨連接的。 我可以理解前沿的概念,但在此圖上運行此算法
1 - > 2 < - 3將給出我們不單獨連接的結果,而該圖是單獨連接的。 我們有3 - > 2或1 - > 2的交叉邊緣,這取決於整個過程(1或3)開始哪個椎骨。 如果我們從頂點2開始DFS,那么我們有2個交叉邊1 - > 2和3 - > 2.任何人都可以澄清嗎?
建議從每個節點運行DFS的答案意味着一旦無法繼續(沒有剩余的傳出邊緣),就應該停止DFS,而不是從不同的節點開始。
在這種情況下,在你的例子中,你將從1開始(wlo),發現2,你就完成了。 沒有后衛
接下來,是一個全新的DFS,從3開始,發現2,並且再次完成,沒有后邊緣。
這個想法基本上是按照定義驗證屬性。 你從每個節點u
做一個DFS,直到你發現每個v
最多只有一條從u
到v
路徑(DFS耗盡)或者你在某個時候找到了從u
到v
的第二條路徑,然后你就完成了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.