修了試験 2014-12-21実施分 基本情報技術者試験 問5
待ち行列に対する操作を,次のとおり定義する。 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、先入れ先出し)の構造です。 操作を順にたどり、中身の変化を追います。 【計算】 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で既に取り出されています。 次に取り出されるのは5です。 2:× 2は2回目のDEQで既に取り出されています。 次に取り出されるのは5です。 3:○ 4回のDEQで1、2、3、4が順に取り出され、残る5、6のうち先頭の5が次に取り出されます。 4:× 6は最後に入れたデータなので、後入れ先出し(スタック)の考え方です。 待ち行列では先頭の5が先に出ます。 【ポイント】 待ち行列はFIFO、スタックはLIFO(Last In First Out、後入れ先出し)です。 ENQとDEQの回数を数えると、4回取り出した後は「入れた順で5番目」の5が出る、と速く判断できます。まとめて解く
修了試験 2014-12-21実施分を通しで解く(80問)→