0
グラフにDFSを適用し、各ノードの状態(検出済み/未検出、処理済み/未処理)を維持します。新しいノードをDFSスタックに配置すると、状態は検出されますが処理されません。ノードがDFSスタックから削除されると、その状態が検出され、処理されます。 私はDFSのXから新しいノードYを訪れているとします。これがサイクルを検出するための条件です。グラフでサイクルを検出するための条件
if(discovered(y) && !processed(y))
この条件は有向グラフに対して正しいですか?
はい、私には妥当と思われます。しかし、私が同じもののためのアルゴリズムを探していたとき、それらは複雑で、異なるアプローチを使用していたので、私は混乱しました。 –