BFSを使用してサイクルを見つけるための擬似コードを与えてください。私はこのタイプの他の質問があることを知っていますが、NONEはコードを与えません。広範な最初の検索を使用してグラフ内のサイクルを見つけるための擬似コード
答えて
DFSは、タスクにはるかに適しており、さらに有向グラフではより適しています。既に知っていたら、これを無視してください。
擬似コードに関しては、無向グラフでは、これは以前に訪問済みとしてマークされたノードに到達したときに見つかったサイクルを中止し報告する従来のBFSです。あなたはBFS hereの擬似コードを見つけることができます。
有向グラフでは、ノードに到達したときにどの方向に歩いていたのかを覚えておく必要があり、DFSより空間的に複雑な欠点がさらに悪化します。
編集:ああ、私はサイクルのグラフをテストすることについて話していましたが、実際にサイクルを見つけることはありませんでした。 DFSのサイクルを見つけることは簡単なことではありませんが、BFSのサイクルを見つけることは実際のアルゴリズムの複雑さとコードの複雑さの両方ではるかに複雑です。そのため、擬似コードが見つからないのです。
を投票することを忘れないならば、私はウルソリューションが間違っていると思います。次のことを考慮してください:o ---- o – Programmer
あなたはK2を意味しますか?問題が表示されない= S – slezica
無向グラフのサイクルを検出する方法については、2 ---- 1と考えてください。私がBFSを1から始めると、私はそれを訪問先としてマークし、それをキューに追加することから始めます。それから、whileループで、私はそれを待ち行列から取り出し、未訪問の頂点を訪問したものとしてマークし、待ち行列に追加します。つまり、私はキューに2を追加します。今、私はキューから2を取得すると、私は再びすべての隣接する頂点を検討します。そうしているうちに、私は既に訪問された1も考慮する。しかし、これはサイクルを示すものではありません。 – Programmer
おそらくDFSを意味していますが、これはサイクル検出ではるかに一般的です。間違えたと思います。 BFSへの変更はかなり簡単ですが、コアの考え方は変わりません。
func detectCycle()
for node in graph:
visited = bool[N]
set all visited to false
detectCycle(n, n, visited)
func detectCycle(n, origin, visited)
for neighbour in graph[n]
if neighbour == origin
cycle detected
if not visited[neighbour]
visited[neighbour] = true
detectCycle(neighbour, visited)
visited[neighbour] = false
私はBFSについて話していました:) – Programmer
だから、あなたはBFSの疑似コードを持っていますか? – Programmer
@Programmer:check CLRS – phoxis
- 1. グラフの閉じたパスを見つけるための擬似コード
- 2. グラフ - 深さの最初の検索を使用して、無向グラフの到達不能ノードを見つける
- 3. 重み付け有向グラフの幅広い最初の検索
- 4. サイクルなしでグラフ内のすべての可能なパスを見つける
- 5. Excelグラフの積極的な範囲を見つけるためのVBAコード
- 6. グラフのサイクル数を見つける(Python)
- 7. FRINGE検索擬似コードの理解
- 8. CSSを使用して擬似クラス:最初の子
- 9. リスト内に複数回出現する数字を見つけるための擬似コード
- 10. 隣接行列を使用した、無向グラフの重み付けグラフの深さの最初の検索?
- 11. グラフのすべてのサイクルを見つける
- 12. Dijkstra'sを使用して重み付き有向グラフで最も重みの低いサイクルを見つける
- 13. 広範囲の最初の検索で迷路を解決する
- 14. グラフでサイクル使用検索の検出と連合
- 15. 無向グラフのサイクルを見つけて印刷する
- 16. 幅広い最初の検索バイナリ検索ツリーjavascriptの実装
- 17. キューの擬似コードを使用してスタックを実装する
- 18. nlpで最良の配列を見つけるためのビーム検索
- 19. スタックベースのDFSを使用した有向グラフでのサイクル検出
- 20. 非テキスト属性を持つ同様の顧客を見つけるための類似検索の手法
- 21. Excelのグラフの最初と最後の点をExcelのウィンドウよりも広い範囲で検出する
- 22. デッドロック検出アルゴリズム(擬似コード)
- 23. DFSを使用して無向グラフのサイクルを検出
- 24. SQL Serverデータベース内のすべての擬似関連データを検索する
- 25. キーに最も近いdoubleを見つけるためのバイナリ検索テンプレート
- 26. グラフ:DFSを使用してundirectdグラフのサイクルを検出する方法
- 27. CSS擬似クラス、DIV内の最初のDIV。クラス
- 28. Pythonでスペルミスを見つけるための線形検索
- 29. 素数を見つけるためのJavaScriptコードの最適化
- 30. VBA - 範囲内の最初の繰り返し単語を検索する
@ppl:あなたは私の質問を表示し、それのように、サイクルが存在するかどうかをテストするために、無向グラフの:) – Programmer