平成30年度 春期 ITパスポート試験 公開問題 問96 解説 FIFOのデータ構造
先入れ先出し(First-In First-Out, FIFO)処理を行うのに適したキューと呼ばれ るデータ構造に対して“8”,“1”,“6”,“3”の順に値を格納してから,取出し を続けて2回行った。2回目の取出しで得られる値はどれか。
- ア 1 ✓ 正答
- イ 3
- ウ 6
- エ 8
解説
この問題は、データ構造であるキューのルールを順に追うだけで正解できます。キューは先入れ先出しの原則に従うため、最初に入れたものから順番に取り出されます。
手順は以下の通りです。
- 格納の順序:8 → 1 → 6 → 3 の順で入れます。このとき、キューの中は先頭から 8, 1, 6, 3 という並びになります。
- 1回目の取出し:先頭にある 8 が取り出されます。残りは 1, 6, 3 です。
- 2回目の取出し:次に先頭にある 1 が取り出されます。
したがって、2回目の取出しで得られる値は 1 となります。
キューは、行列に例えられるデータ構造です。レジの待ち行列のように、先に並んだ人が先にサービスを受けられるのと全く同じ仕組みです。対になる概念として、後から入れたものを先に取り出すスタック(LIFO:Last-In First-Out)があり、両者は対比されてよく出題されます。
実務や試験での活用場面として、コンピュータ内部の処理待ち行列が代表的です。例えば、プリンタの印刷待ちデータや、ネットワークを通じて届いたデータの処理順序などは、順番を守るためにキューが利用されています。試験では「先に入れたものから順に処理する」という性質さえ押さえておけば、図を描くまでもなく答えが導き出せます。また、スタックとの違いを問う問題も頻出するため、セットで覚えておくと効率的です。
- 基本情報技術者試験のアルゴリズムとデータ構造の学習教材(基本情報技術者試験ドットコム)