平成21年度 春期 基本情報技術者試験 午前 問5
テクノロジ/アルゴリズム関数や手続を呼び出す際に,戻り番地や処理途中のデータを一時的に保存するのに適したデータ構造はどれか。
出典:平成21年度 春期 基本情報技術者試験 午前 問5
- ア2分探索木
- イキュー
- ウスタック
- エ双方向連結リスト
正解:ウ
解説
関数やサブルーチンの呼出しでは,呼び出した時点の戻り番地やローカル変数などの情報を,呼出しの順序とは逆の順序(後入れ先出し)で復元する必要があります。この性質に合致するデータ構造がスタックであり,多くのプロセッサでは関数呼出しのたびにスタックへ戻り番地などを積む処理が行われます。
選択肢ごとの解説
- ア誤り。2分探索木はデータの探索や整列に適した木構造であり,戻り番地の一時保存には使われません。
- イ誤り。キューは先入れ先出し(FIFO)の構造であり,関数呼出しの入れ子構造(後入れ先出し)には適しません。
- ウ正しい。後入れ先出し(LIFO)のスタックは,関数呼出しのネストに合わせて戻り番地やデータを保存・復元するのに適しています。
- エ誤り。双方向連結リストは両方向への移動が可能なリスト構造ですが,戻り番地の保存に特化した構造ではありません。