掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
再帰関数とは (ID:68185)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
探索アルゴリズムのお話。 深さ優先探索か、幅優先探索かの話です。 再帰関数は深さ優先探索のために作ります。 どちらも原理的にはループとスタックを使って実装できますが、 深さ優先探索は再帰関数を使うことでスタックを使わずに実装できます。 >「長男」→「長男」→「長男」と下って、子がなくなったら、「弟」を探しているのでしょうか。 再帰関数のふるまいはこちらが正解。深さ優先探索です。 それとも、まずルートの「子」を全部拾って、次に「長男」から順番に、その「子」を全部拾っているのでしょうか。 こちらは幅優先探索。ルートから順に「子すべて」、「孫すべて」、「ひ孫すべて」・・・と探索していきます。 >もうひとつ分からないのは、たとえば「子」→「子」と下っていき、子がなくなって、親に戻った場合、コードが川下へ下る方向だと、また子に戻って、「ぐるぐるまわし」になってしまわないのでしょうか。 なりません。なったとしたら、それは再帰関数の作り方が悪かっただけの話。親に戻ったら二男を探すか、いなければ祖先に戻るかで、また長兄を探していくことはしません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.