深さ優先探索
目的の方へ進めるだけ進んで、進めなくなったら戻る方法を深さ優先探索といいます。
深さ優先探索は、バックトラックとも呼ばれ、すべての答えを見つけるときによく使われます。
深さ優先探索は、順番によって次の3種類があります。
🔹 行きがけ順
🔹 帰りがけ順
🔹 通りがけ順
ソースコード(帰りがけ順)
次のような木構造があるとします。
[木構造]
深さ優先探索は、再帰を使って実装するのが一般的です。
帰りがけ順では、各ノードの子をすべてたどった後でそのノードを処理します。
行きがけ順と比べて、printする位置だけが変わっています。(23行目)
[Google Colaboratory]
1 | # 木構造を表すデータ |
[実行結果]
7 8 3 9 10 4 1 11 12 5 13 14 6 2 0
深いノードの番号が出力されたあとにその親ノードが順に出力され、最後にノード0が出力されることを確認できます。