簡體   English   中英

循環有向圖和無向圖

[英]Cyclic directed and undirected graphs

如何檢測循環中的

  1. 有向圖
  2. 無向圖。

對於無向圖..我想到的一種算法是使用不交集。

  • 對於G中的每個頂點v
    • 設定(v)
  • 對於G中的每個邊e(u,v)一一取
    • 如果查找集(u)==查找集(v)
      • 返回true //循環存在
  • 返回假

對於無向的,只需使用DFS :如果邊緣指向已訪問的頂點,則存在一個循環。

對於有指導的人,請看一下這個問題

在無向圖中找到循環的方法應該是這樣的:

  • 對於G中的每個頂點v
    • 機組(v)
  • 對於G中的每個邊e(u,v)一一取
    • 如果查找集(u)==查找集(v)
      • 返回真
    • 並集(u,v)
  • 返回假

對於有向圖,應該使用Tarjan的強連接組件算法來獲取圖中的強組件數量。 然后,您可以檢查強連接的組件號是否等於頂點號。 由於如果有向圖中有一個循環,則在同一強連接的組件中至少有兩個頂點。 這意味着,如果有向圖具有循環,則強連接的組件的總數應小於頂點的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM