私はこのサイトに不慣れです。この質問は確かに研究レベルではありませんが、まあ。ソフトウェアエンジニアリングの背景は少しありますが、CSTheoryの背景はほとんどありませんが、魅力的です。長い話を簡単に言うと、この質問がこのサイトで受け入れられる場合は、次の詳細な回答をお願いします。
だから、私はすべての再帰プログラムに反復的な類似点があることを知っています。「システムスタック」に似たものを維持し、戻りアドレスなどの環境設定をプッシュすることによって、そのために提供される人気のある説明を理解しています。 。
もう少し具体的に、チェーンを呼び出す関数がある場合に、このステートメントをどのように証明するかを(正式に)確認したいと思います。さらに、F iがいくつかのF jを呼び出す可能性がある条件ステートメントがある場合はどうなりますか?つまり、潜在的な関数呼び出しグラフには、いくつかの強く関連するコンポーネントがあります。
これらの状況を、反復から反復へのコンバーターを使ってどのように処理できるかを知りたいです。そして、私が以前に言及した手で波打った説明は、この問題にとって本当に十分ですか?つまり、場合によっては、再帰の削除が簡単な場合があるのはなぜでしょうか。特に、バイナリツリーのプレオーダートラバーサルから再帰を削除することは本当に簡単です。これは標準的なインタビューの質問ですが、ポストオーダーの場合に再帰を削除することは常に私にとって悪夢です。
私が本当に求めているのは質問です
(1)再帰を反復に変換できるというより正式な(納得できる?)証明は本当にありますか?
(2)この理論が本当にそこにあるのなら、なぜ、例えば、前注文をより簡単に、後注文を反復することがそれほど難しいと私が思うのはなぜですか?(私の限られた知性以外)