プログラムで関数を呼び出すとき、戻り先のアドレスや局所変数を保存しておくのに使われるデータ構造はどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 Aスタック
解説
正解は「スタック」です。関数 A が関数 B を呼び、B がさらに C を呼ぶと、戻るときは C→B→A の逆順になります。この「最後に呼ばれたものから先に戻る」性質は LIFO であり、呼出しのたびに戻り先や局所変数をスタックに積み、戻るときに取り出すことで実現されます。この領域をコールスタックといい、再帰呼出しが深すぎると溢れてスタックオーバーフローになります。「キュー」は FIFO で、先に入ったものから処理する待ち行列やバッファに使われます。「ハッシュ表」はキーによる高速な検索に、「2分探索木」は大小順を保った検索や挿入に使われる構造で、呼出しの順序管理には使いません。
- #スタック
- #再帰
この調子でデータ構造とアルゴリズムを続けて解く
▶ この科目の連続演習へ進む(10問)