ITパスポート

問76

ITパスポート過去問 平成30年度(2018年)問76

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

選択肢

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

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答

スタックは、最後に格納したデータを最初に取り出す方式です。この方式はLIFO(Last In, First Out、後入れ先出し)と呼ばれます。したがって、正しい取出し方は「最後に格納されたデータを最初に取り出す」です。

不正解

格納順に関係なく任意の位置を指定して取り出すのは、配列などのランダムアクセスの考え方です。スタックの取出し規則ではありません。よって誤りです。

正解

スタックはLIFO(後入れ先出し)で、最後に格納(push)したデータが最初に取り出し(pop)されます。したがって正解です。

不正解

最初に格納されたデータを最初に取り出すのはFIFO(先入れ先出し)で、キューの規則です。スタックの取出し規則ではありません。よって誤りです。

不正解

キーの優先度で取り出すのは優先度付きキューの規則です。スタックの取出し規則ではありません。よって誤りです。

Point

この問題は、スタックの基本的な取出し規則であるLIFO(後入れ先出し)を理解しているかを確認するものです。あわせて、キュー(FIFO)や優先度キューなど、取出し規則が異なるデータ構造と区別できることが求められます。

解くために必要な知識

この問題を解くには、代表的なデータ構造であるスタックの性質と、取出し順序を表す用語(LIFO、FIFO)を理解している必要があります。

用語の整理

用語 意味
データ構造 データをコンピュータ上で扱いやすくするための、格納・管理の仕組みです。
スタック データを後入れ先出し(LIFO)で管理するデータ構造です。最後に追加したデータを最初に取り出します。
LIFO(Last In, First Out) 後入れ先出しです。最後に入れたものを最初に出す方式です。

他の選択肢に出てくる用語

用語名 意味
ランダムアクセス 格納された順序に関係なく指定された任意の場所のデータを取り出す方式です。
キュー(Queue) / FIFO First-In First-Outの略で、最初に格納したデータを最初に取り出す方式です。
優先度付きキュー 格納順ではなく、各データに設定された優先度(キー)に従って取り出す方式です。

 

問題の解法手順

各選択肢の整理

選択肢 内容 該当するデータ構造 正誤
任意の場所のデータを取り出す 配列(ランダムアクセス)
最後に格納されたデータを最初に取り出す スタック(LIFO)
最初に格納されたデータを最初に取り出す キュー(FIFO)
キーの優先度でデータを取り出す 優先度キュー

 

選択肢ごとの解説

不正解

格納順に関係なく任意の位置を指定して取り出すのは、配列などのランダムアクセスの考え方です。スタックの取出し規則ではありません。よって誤りです。

正解

スタックはLIFO(後入れ先出し)で、最後に格納(push)したデータが最初に取り出し(pop)されます。したがって正解です。

不正解

最初に格納されたデータを最初に取り出すのはFIFO(先入れ先出し)で、キューの規則です。スタックの取出し規則ではありません。よって誤りです。

不正解

キーの優先度で取り出すのは優先度付きキューの規則です。スタックの取出し規則ではありません。よって誤りです。

まとめ

スタックは、最後に格納したデータを最初に取り出す方式です。この方式はLIFO(Last In, First Out、後入れ先出し)と呼ばれます。したがって、正しい取出し方は「最後に格納されたデータを最初に取り出す」です。

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

順次、単語を追加予定です。もうしばらくお待ちください。