ITパスポート試験 ITパスポート 2018年 (平成30年 秋期)76: 複数のデータが格納されているスタックからのデータの取出し方として,適切なものはどれか。

ITパスポート 2018年 (平成30年 秋期)
Q 7676 / 100
複数のデータが格納されているからのデータの取出し方として,適切なものはどれか。
この問の正解率:73.36%(1,385件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

複数のデータが格納されているスタックからのデータの取出し方として,適切なものはどれか。

選択肢

  • .格納された順序に関係なく指定された任意の場所のデータを取り出す。
  • .最後に格納されたデータを最初に取り出す。
  • .最初に格納されたデータを最初に取り出す。
  • .データがキーをもっており,キーの優先度でデータを取り出す。

正解

. 最後に格納されたデータを最初に取り出す。

解説

スタック(Stack)はLIFO(Last In First Out=後入れ先出し)の特性を持つデータ構造。最後に格納したデータが最初に取り出される。Push(データの追加)とPop(データの取り出し)操作を持つ。プログラムの関数呼び出し管理(コールスタック)・計算機の逆ポーランド記法評価・ブラウザの「戻る」機能・再帰処理などに使われる。対比概念はキュー(Queue)でFIFO(First In First Out=先入れ先出し)の特性を持ち最初に格納したデータを最初に取り出す。両者の特性の違いを正確に把握することが重要。

選択肢ごとの解説

  • .誤り。格納順序に関係なく指定した任意の位置のデータを取り出すことは配列(Array)やランダムアクセスリストの特性。インデックス(添字)で直接任意の位置にアクセスするデータ構造であり、LIFOルール(最後に入れたものを最初に出す)で管理するスタックとは根本的に異なるアクセス方式を持つ。
  • .正解。スタックは最後に格納したデータを最初に取り出すLIFO(Last In First Out)構造。例えばA→B→Cの順に積み上げたら、取り出しはC→B→Aの順になる。皿を重ねて上から取る場合のイメージが分かりやすい。関数呼び出しのネスト管理(コールスタック)が典型的な用途。
  • .誤り。最初に格納したデータを最初に取り出すのはキュー(Queue)のFIFO(First In First Out)構造。銀行・コンビニのレジ・プリンタの印刷待ち等のような先着順の待ち行列(待ち行列)をデータ構造で表現したもの。最後に入れたものを最初に出すスタックのLIFOとは逆の特性を持つ。
  • .誤り。データがキー(優先度)を持ち優先度の高いデータから取り出す構造は優先度付きキュー(Priority Queue)。タスクスケジューリング・緊急度に応じた処理順序の制御などに使われる。格納順序のみで取り出し順序が決まるスタックとは異なり、優先度という追加属性でアクセス順序が決まる。

ITパスポート 2018年 (平成30年 秋期)過去問一覧へ戻る・問76