私はグラフの隣接リスト表現を持っていますが、対称ではありません。ノードA
のエッジがB
である場合、B
のエッジがA
であることは真ではありません。私はこれが有向グラフ(有向グラフ)になると思う。グラフの相互エッジを検出する
ノードからすべての双方向パスを検出するには、どのような方法が適していますか。私は、DFSを使用してノードからグラフの別のノードへのパスを検出できることを知っています。私が探しているのは、双方向エッジのみを考慮した双方向DFSです。
これを行う1つの方法は、ノードの隣人を見て、これが双方向関係であるかどうかを調べることです。しかし、このためには、この隣接ノードのすべての即時接続を調べ、最初のノードも接続であるかどうかを確認し、そうであれば再帰を続行する必要があります。これを効率的に行う方法があるのだろうか?
ありがとうございます。私はセットがルックアップを行う方が効率的であることを忘れていました。しかし、深さの最初の検索で隣人を反復することは、設定された表現では遅くなります。私は、複数の表現を作成することが行く方法かもしれないと思う... – Luca