問76
ITパスポート過去問 平成30年度(2018年)問76
複数のデータが格納されているスタックからのデータの取出し方として,適切なものはどれか。
選択肢
- ア:格納された順序に関係なく指定された任意の場所のデータを取り出す。
- イ:最後に格納されたデータを最初に取り出す。
- ウ:最初に格納されたデータを最初に取り出す。
- エ:データがキーをもっており,キーの優先度でデータを取り出す。
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
正解:イ
あなたの回答:未回答
スタックは、最後に格納したデータを最初に取り出す方式です。この方式はLIFO(Last In, First Out、後入れ先出し)と呼ばれます。したがって、正しい取出し方は「最後に格納されたデータを最初に取り出す」です。
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、後入れ先出し)と呼ばれます。したがって、正しい取出し方は「最後に格納されたデータを最初に取り出す」です。
※本解説は生成AIによる学習支援用の参考情報です。内容の正確性や最新性は保証されません。最終的な判断は、試験実施団体の公式資料をご確認ください。
テクノロジ系 > 基礎理論 > アルゴリズムとプログラミング
順次、単語を追加予定です。もうしばらくお待ちください。
格納順に関係なく任意の位置を指定して取り出すのは、配列などのランダムアクセスの考え方です。スタックの取出し規則ではありません。よって誤りです。
スタックはLIFO(後入れ先出し)で、最後に格納(push)したデータが最初に取り出し(pop)されます。したがって正解です。
最初に格納されたデータを最初に取り出すのはFIFO(先入れ先出し)で、キューの規則です。スタックの取出し規則ではありません。よって誤りです。
キーの優先度で取り出すのは優先度付きキューの規則です。スタックの取出し規則ではありません。よって誤りです。