IPA過去問ドリル

平成21年度 春期 基本情報技術者試験 午前 問5

テクノロジ/アルゴリズム

関数や手続を呼び出す際に,戻り番地や処理途中のデータを一時的に保存するのに適したデータ構造はどれか。

出典:平成21年度 春期 基本情報技術者試験 午前 問5

正解:ウ

解説

関数やサブルーチンの呼出しでは,呼び出した時点の戻り番地やローカル変数などの情報を,呼出しの順序とは逆の順序(後入れ先出し)で復元する必要があります。この性質に合致するデータ構造がスタックであり,多くのプロセッサでは関数呼出しのたびにスタックへ戻り番地などを積む処理が行われます。

選択肢ごとの解説

  • 誤り。2分探索木はデータの探索や整列に適した木構造であり,戻り番地の一時保存には使われません。
  • 誤り。キューは先入れ先出し(FIFO)の構造であり,関数呼出しの入れ子構造(後入れ先出し)には適しません。
  • 正しい。後入れ先出し(LIFO)のスタックは,関数呼出しのネストに合わせて戻り番地やデータを保存・復元するのに適しています。
  • 誤り。双方向連結リストは両方向への移動が可能なリスト構造ですが,戻り番地の保存に特化した構造ではありません。
基本情報技術者の過去問を演習モードで解く