過去問解きまくり研究所 ホーム

平成24年度 秋期 午前 問5

データ構造

キューに関する問題

四つのデータ A,B,C,D がこの順に入っているキューと空のスタックがある。手続 pop_enq,deq_push を使ってキューの中のデータを D,C,B,A の順に並べ替えるとき,deq_push の実行回数は最小で何回か。ここで,pop_enq はスタックから取り出したデータをキューに入れる操作であり,deq_push はキューから取り出したデータをスタックに入れる操作である。

答えと解説を見る

✓ これが正解イ3

解説

最後尾を残し、前の三つだけをスタックへ移せば足ります。

キューは先に入れたものから出る入れ物で、スタックは後に入れたものから出る入れ物です。並びを逆さまにする働きをもつのはスタックのほうなので、この並べ替えはスタックが引き受けます。軸は一つで、何個を預ければ目的の並びに届くかを数えることです。もともと最後尾にいるものは、そのままキューに残しておけば新しい並びの先頭になります。ですから動かす必要があるのは、その前にいる三つだけです。実際に追うと、先頭から三つを順にスタックへ入れると、キューには最後の一つだけが残ります。この状態でスタックから三つを取り出してキューの末尾に加えると、残っていた一つを先頭にして、預けた三つが入れた順と逆に並びます。

ほかの選択肢はなぜ違うのか

出典:平成24年度 秋期 基本情報技術者試験 午前 問5

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)