掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
再帰関数とは (ID:68200)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
再帰関数を使うメリットはツリーの段数を決めうちにしないで 処理出来る所ですよね。 ツリーの段数が予めわかっていてそれ以上はありえないなら 再帰を使わなくてもいいわけで。 再帰関数を作成する場合、関数一回の呼び出し範囲での 終了条件はハッキリしているはずです。 これがハッキリしていないのならそもそも再帰は組めないです。 今回の例で言うなら関数の復帰ポイントは与えられたノードの 子供を全てチェックし終えたら終了な訳です。 見つけたノードに更に子供がいたらそのノードを基点に 自関数を呼び出すことでその子供を全てチェックするまで 処理をすると言う事になります。 その理屈から言えば、無限ループになるはずが無いと思います。 ある段階から更に自関数を呼び出した場合、呼び出した段階での チェック状態は呼び出した自関数から戻ってくるまで保存されて いるはずですし、保存できるようにして無いとそもそも変です。 呼び出し先の自関数の中の動きが直接影響するような作りは 普通しませんから。 再帰関数として成立する為の関数内での処理と言うのをきちんと 整理できないのであれば、再帰関数は使わない方が良いのでは? 逆にどうしても使いたいのであれば、その部分を整理して理解する しか道は無いと思います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.