再帰的(リカーシブ)
再帰的(リカーシブ)
次に、再帰的あるいはリカーシブとは、プログラムの処理中に自分自身を呼び出すことが出来るプログラムをいいます。
数学の階乗計算やWindowsの階層ディレクトリの検索などで用いられます。
このプログラムでは、自分自身を呼び出す前に、必要なデータをスタックに保持をして、
戻ってきたときにスタックからその時のデータを取り出して、呼び出す前の状態に戻していきます。
このスタックについては後の章で詳しく説明を致します。
テキストの例を見ると、同じプログラムAが2回自分自身のプログラムを呼び出しています。
まず、①の最初のプログラムAから、1回目のプログラムAを呼び出したときに、スタックに呼び出したときの状態やデータを保持(プッシュ)します。
次に続いて、②の2回目のプログラムAを呼び出したときに、その時の状態をスタックに保持(プッシュ)をします。
この時、スタックには下から①の状態データ、その上に②の状態データが保存されています。
次に、③の2回目に呼び出されたプログラムAが終了したときに、スタックから②で呼び出したときに保持してある、②の状態のデータをスタックから読出し(プル)を行います。
スタックは、読出し(プル)を行うとスタックからは削除されます。
これで、1回目に呼び出されたプログラムAが元の状態に戻りました。
次に、④の1回目目に呼び出されたプログラムAが終了すると、スタックから①で保存しておいた①の状態をスタックから読出し(プル)をします。
これで、最初のプログラムAの状態に戻りました。
このスタックの仕組みについては後の章で詳しく説明を致します。
続きはこちら ↓↓↓
コンテンツの利用について
こちらをお読みください