問題

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

ア 2分探索木
イ キュー
ウ スタック
エ 双方向連結リスト

テクノロジ系>基礎理論>アルゴリズムとプログラミング>データ構造

解説と解答

 それぞれの選択肢を見てみましょう。

 選択肢アの2分探索木は,昇順に並んだものを保管するのに適したデータ構造です。

 選択肢イのキューは,キーボードからの入力の保存など,入力順に処理をするのに適したデータ構造です。

 選択肢ウのスタックは,最後に入れたものを最初に処理するのに適したデータ構造です。

 選択肢エの双方向連結リストは,路線の駅名のように順番があり,挿入,削除ができ,前後を調べる必要があるときに適したデータ構造です。

 関数はプログラム実行中に次々と呼び出され,処理が終わると呼び出し側に戻ってきます。このとき,スタックを使って戻り先のアドレス情報などを記憶させておきます。実際のプログラムでは,呼び出した関数で別の関数を呼ぶこともあります。こうした場合,まず一番最後に記憶したアドレス情報を取り出してそのアドレスに戻り,次に最後から二番目に記憶したアドレス情報を取り出してそのアドレスに戻る必要があります。このようなデータの取り出し方は,スタックが適しています。  

 よって正解は,選択肢ウです。