2016-10-02 6 views
-4

再帰が最も良い解決法であるか唯一の解決法であるかという実用上の問題はありますか?ここでは、実際のアプリケーションの開発者は、ターゲットシステム上でスタックサイズ、スタックオーバーフローなどの問題を処理する必要があることを暗示しています。再帰の実際的な使用

更新: 私の質問は間違っていたかもしれません。私は再帰を使って解決できる問題があることを知っています。しかし、私は、実世界のコーダーでは、再帰的な解決に関係する何らかの問題、例えばスタックオーバーフローを処理する必要があると考えています。目標システムパラメータを決定するのは洗練されているかもしれない。つまり、複雑な問題があれば可能なら誰かが再帰を避けるべきだと私は考えることができます。

+4

あなたの大規模な研究では、このような問題は見つかりませんでしたか? –

+0

ハノイタワーズ。再帰的および反復的な比較 – Nf4r

+0

この質問は広すぎますが、これは開始するのに適しているかもしれません:https://en.wikipedia.org/wiki/Tail_call新しいスタックフレームを追加せずに再帰を適用できると、空が限界です。 – TheInnerLight

答えて

0

どういう意味ですか。再帰、スタック、ツリーは密接に関連しています。私たちが木のようなデータを操作しているなら、私たちは押してポップするスタックをどこかに持っていなければなりません。

しかし、常に使用しているコンピュータプログラミング言語の呼び出しスタックからそのスタックを移動することは可能です。多くの場合、コールスタックを単純に使用する方がはるかに便利ですが、言語によっては再帰関数を使用できない場合があります.Cでは、コールスタックをオーバーフローから保護することはできません。しかし、あなたは再帰を取り除くつもりはありません、スタックを他の場所に移動しているだけです。