問題
四つのデータ A,B,C,D がこの順に入っているキューと空のスタックがある。手続 pop_enq,deq_push を使ってキューの中のデータを D,C,B,A の順に並べ替えるとき、deq_push の実行回数は最小で何回か。ここで、pop_enq はスタックから取り出したデータをキューに入れる操作であり、deq_push はキューから取り出したデータをスタックに入れる操作である。
選択肢
- 12
- 23
- 34
- 45
正解
2. 3
詳しい解説を見る解説を閉じる
解説
キュー先頭の A を deq_push でスタックへ退避し、B を pop_enq できないので…と順に検討すると、A・B・C をスタックへ積んでから戻し、最後に残った D を含めて並べ替える過程で deq_push は最小 3 回で済む。先頭の D を最後にスタック経由で送る必要がないため 4 回は不要で、イ(3 回)が正しい。(出典: 平成24年度 秋期 基本情報技術者試験 午前 問5)
一問一答
科目A 180問+科目B 60問