問76
頻出度★☆☆
複数のデータが格納されているスタックからのデータの取出し方として, 適切なものはどれか。
この問題の解説と、これまでの解答の記録です。
複数のデータが格納されているスタックからのデータの取出し方として, 適切なものはどれか。
格納順序に関係なく任意の場所のデータを取り出せるのは「配列」など添字で直接アクセスできるデータ構造の特徴です。スタックは常に一番上からしか取り出せないため誤りです。
正解 スタックは「後入れ先出し (LIFO)」のデータ構造です。データを積む操作を push、取り出す操作を pop と呼び、pop では常に一番上 (=最後に push した最新のデータ) から取り出されます。したがって「最後に格納されたデータを最初に取り出す」というイが正しい取出し方です。皿を積み重ねて上から取る様子をイメージすると分かりやすいです。
「最初に格納したデータを最初に取り出す」のは「先入れ先出し (FIFO)」で、これは「キュー (待ち行列)」の説明です。スタックとは取出し順が逆なので誤りです。
データがもつキーの優先度に従って取り出すのは「優先度付きキュー (プライオリティキュー)」の考え方です。スタックは優先度ではなく格納の前後関係だけで取出し順が決まるため誤りです。