平成25年度 秋期 午前 問5
データ構造
待ち行列に関する問題
待ち行列に対する操作を,次のとおり定義する。
ENQ n :待ち行列にデータ n を挿入する。
DEQ :待ち行列からデータを取り出す。
空の待ち行列に対し,ENQ 1,ENQ 2,ENQ 3,DEQ,ENQ 4,ENQ 5,DEQ,ENQ 6,DEQ,DEQ の操作を行った。次に DEQ 操作を行ったとき,取り出される値はどれか。
- ア1
- イ2
- ウ5
- エ6
答えと解説を見る
✓ これが正解ウ5
解説
先入れ先出しなので五番目に入れた値が出ます。
待ち行列は先に入れたものから先に出ていく入れ物です。ですから取り出しの操作が何回行われたかを数えるだけで、次に出てくるものが決まります。設問の操作を順に見ると、挿入は1から6までを番号の小さい順に行っており、取り出しは全部で四回行われています。四回で最も古い四つ、つまり1から4までが出ていったことになりますから、その次に控えているのは五番目に入れた値です。操作を一つずつ書き並べて残っている並びを追っても、同じ答えになります。判定の軸は、出ていく順序が入れた順序と同じ向きか、それとも反対向きかです。
ほかの選択肢はなぜ違うのか
- ア1:最初に入れた値ですが、三回の挿入の直後に行われた一回目の取り出しで既に出ています。まだ入れ物の中に残っていると数え損ねたときにだけ選ばれる値です。
- イ2:二番目に入れた値で、二回目の取り出しで既に出ています。取り出しの回数を四回ではなく一回と数えてしまうと、この値が次に控えているように見えてしまいます。
- エ6:最後に入れた値です。後から入れたものほど先に出る入れ物であれば正しくなりますが、この設問の入れ物は古いものから順に出す決まりなので、まだ列の末尾に控えたままです。
出典:平成25年度 秋期 基本情報技術者試験 午前 問5
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)