How it works?
Coddyの「深さ優先探索 - グラフアルゴリズム」コースのレッスン 3/9。
DFSは、各頂点のvisited(訪問済み)マーカーと、処理する頂点のスタックを保持します。
ステップバイステップのプロセス:
- 開始頂点をスタックにプッシュします。
- 頂点をポップします。すでに訪問済みの場合はスキップします。そうでない場合は、訪問済みとしてマークし、訪問順序に記録します。
- 未訪問の隣接頂点をプッシュします。昇順で訪問するには、最小の頂点が最初にポップされるように、大きいものから小さいものの順にプッシュします。
- スタックが空になるまで繰り返します。
頂点 0..3、エッジ [0,1, 0,2, 1,3, 2,3]、開始点 0 での例:
- 0を訪問し、次にその最小の隣接頂点1、次に1の隣接頂点3、最後に3の隣接頂点2を訪問します。
- 訪問順序: [0, 1, 3, 2]。
開始点から到達可能な頂点のみが訪問されます。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
深さ優先探索 - グラフアルゴリズムのすべてのレッスン
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)