再帰処理とスタック (LIFO)
出典: 平成30年度 春期 応用情報技術者試験 午前 問8 (IPA)
再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。
- ア FIFO
- イ LFU
- ウ LIFO
- エ LRU
正解と解説を見る
正解: ウ
- ア: FIFO (先入れ先出し) はキューの方式です。再帰では最後に保存した内容から先に取り出すので合いません。
- イ: LFU は、使用回数が最も少ないページを置き換えるページ置換えアルゴリズムです。
- ウ: 最後に呼び出した処理から先に戻るので、後入れ先出しの LIFO (スタック) で保存します。正しい答えです。
- エ: LRU は、最も長い間使われていないページを置き換えるページ置換えアルゴリズムです。
ポイント
- 再帰呼出しでは、最後に呼び出した処理から先に終わり、呼出し元に戻ります。
- そのため、レジスタやメモリの内容は LIFO (後入れ先出し)、つまりスタックで保存・復元します。