【ふかさゆうせんたんさく】
深さ優先探索(DFS) とは?
💡 行き止まりまで突き進んでから引き返す、一本道の冒険者
📌 このページのポイント
深さ優先探索ってどう探すの?
迷路で壁に手をつけたまま進む方法をイメージしてみて。とにかく一方向に進み続けて、行き止まりになったら一歩戻って別の道を試す。これがDFSの基本だよ
どうやって実装するの?
BFSとどっちを使えばいいの?
再帰が深すぎるとエラーになるって聞いたけど…
スタックオーバーフローだね。再帰呼び出しが深くなりすぎるとメモリが足りなくなる。その場合は明示的にスタックを使ったループ実装に切り替えるか、末尾再帰最適化ができる言語を使うといいよ
DFSならではの応用ってある?
まとめ:ざっくりこれだけ覚えればOK!
「深さ優先探索」って出てきたら「一本道を突き進んで、行き止まりで引き返す探し方」と思えればだいたいOK!
📖 おまけ:英語の意味
「Depth-First Search」 = 深さ優先探索
💬 「depth(深さ)」を「first(最初に)」探索するという名前で、とにかく深く潜っていくイメージだよ