修了試験 2020-06-14実施分 基本情報技術者試験 問8
待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。 空の待ち行列に対し,ENQ 1,ENQ 2,ENQ 3,DEQ,ENQ 4,ENQ 5,DEQ,ENQ 6,DEQ,DEQの操作を行った。 次にDEQ操作を行ったとき,取り出されるデータはどれか。
正答3
解説
正解は3です。 待ち行列(キュー)の操作を順にたどる問題です。 待ち行列は、先に入れたデータから先に取り出すFIFO(First In First Out)の構造です。 DEQでは、その時点で最も古いデータが取り出されます。 【計算】 ENQ 1、ENQ 2、ENQ 3 の後、待ち行列は 1、2、3 です。 DEQ で1が取り出され、2、3 になります。 ENQ 4、ENQ 5 の後、2、3、4、5 になります。 DEQ で2が取り出され、3、4、5 になります。 ENQ 6 の後、3、4、5、6 になります。 DEQ で3が取り出され、4、5、6 になります。 DEQ で4が取り出され、5、6 になります。 次のDEQで取り出されるのは5です。 【選択肢別解説】 1:× 1は最初のDEQで既に取り出されています。 次のDEQで取り出されるのは5です。 2:× 2は2回目のDEQで既に取り出されています。 次のDEQで取り出されるのは5です。 3:○ 4回のDEQで1、2、3、4が取り出され、先頭に残っているのは5です。 4:× 6は最後に挿入したデータなので、取り出されるのは5の後です。 後入れ先出しのスタックと取り違えると6を選んでしまいます。 【ポイント】 待ち行列はFIFO、スタックはLIFO(Last In First Out:後入れ先出し)です。 操作が多い問題では、各操作の後の中身を書き出して確かめると間違えにくくなります。まとめて解く
修了試験 2020-06-14実施分を通しで解く(80問)→