問題
問96
先入れ先出し (First-In First-Out, FIFO)処理を行うのに適したキューと呼ばれるデータ構造に対して“8”,“1”,“6”,“3”の順に値を格納してから、取出しを続けて2回行った。2回目の取出しで得られる値はどれか。
- 1
- 3
- 6
- 8
[出典:ITパスポート試験 平成30年度春期 問96]
正解
正解は「ア」です。
解説
正解は「ア」です。 キューは、最初に入力されたデータが最初に出力される「先入れ先出し(FIFO)」の構造を持つデータ構造です。これは、お店のレジで列ができている状況をイメージすると分かりやすいです。最初にお店に来たお客さんが最初にレジで対応してもらい、次にお店に来たお客さんがその次に対応してもらいます。
今回の問題では、まず「8」「1」「6」「3」の順にキューに格納しました。これを格納順に並べると、キューの先頭(最初に入ったもの)から「8」「1」「6」「3」という順番になっています。 次に、このキューから2回取り出し操作を行いました。1回目の取り出しでは、キューの先頭にある「8」が取り出されます。キューには「1」「6」「3」が残ります。 2回目の取り出しでは、残ったキューの先頭にある「1」が取り出されます。したがって、2回目の取り出しで得られる値は「1」となります。
イ(3):
「3」はキューの最後に入力された値であり、先入れ先出しの原則に反するため不正解です。キューは最初に入ったものが最初に出る仕組みです。
ウ(6):
「6」は2番目に取り出される値であり、2回目の取り出しで得られる値ではないため不正解です。キューの構造を理解していれば、2番目に取り出される値が「6」となることはありません。
エ(8):
「8」はキューに最初に入力された値であり、1回目の取り出しで取り出される値です。問題では2回目の取り出しで得られる値を問われているため不正解です。
難易度
この問題は、キューの「先入れ先出し(FIFO)」という基本的な概念を理解していれば解きやすい問題です。実際の入出力の例を想像しながら、格納と取り出しの順番を正確に追っていくことが重要です。ITの学習を始めたばかりの方でも、日常的な例え(列に並ぶなど)を思い浮かべながら、落ち着いて考えれば正解にたどり着けるでしょう。
用語補足
キュー:
キューは、コンピューターサイエンスにおいて、データを格納するためのデータ構造の一つです。「先入れ先出し(FIFO)」の原則に従い、最初に入力されたデータが最初に取り出されます。身近な例としては、お店でレジの順番待ちの列が挙げられます。
先入れ先出し (FIFO):
「先入れ先出し(FIFO)」とは、データ構造や処理方式の一つで、最初に入力されたデータが最初に出力されることを指します。例えば、郵便局で手紙を仕分けする際に、最初に届いた手紙から順番に処理していくのがFIFOの考え方です。
格納:
格納とは、コンピューターのメモリやストレージなどの記憶領域にデータや情報を保存することを意味します。例えば、スマートフォンの写真アプリで写真を保存するとき、その写真はデバイスのストレージに「格納」されます。
取出し:
取出しとは、格納されたデータや情報を取り出して利用することです。例えば、写真アプリで保存した写真を見るために、その写真を選択して表示するのが「取出し」の操作に相当します。
対策
この問題を解くためには、キューの「先入れ先出し(FIFO)」という特性を正確に理解することが重要です。値を格納していく順番と、取り出していく順番を、実際の列に並ぶ状況をイメージしながら丁寧に追っていきましょう。図などを書いて、格納と取り出しの操作を視覚的に確認すると、より理解が深まります。ITの基礎的なデータ構造に関する知識を問う問題として、基本的な概念の定着を確認するのに役立ちます。

