修了試験 2017-01-22実施分 基本情報技術者試験 問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)のデータ構造です。 操作を1つずつたどり、中身の変化を確かめます。 【計算】 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を取り出し、次のDEQで4を取り出します。 中身は5、6になります。 次のDEQで取り出されるのは先頭の5です。 【選択肢別解説】 1:× 1は最初のDEQですでに取り出されています。 2:× 2は2回目のDEQで取り出されています。 3:○ 4回のDEQのあと先頭に残るのは5なので、次に取り出されるのは5です。 4:× 6は最後に入れたデータで、5の後ろに並んでいます。 先に取り出されるのは5です。 【ポイント】 最後に入れたデータを先に取り出すLIFO(Last In First Out)はスタックです。 キューとスタックの取り出し順の違いは頻出なので、図を描いて追う習慣を付けましょう。まとめて解く
修了試験 2017-01-22実施分を通しで解く(80問)→