ITパスポート 令和元年度秋期午前問62

午前問62

下から上へ品物を積み上げて,上にある品物から順に取り出す装置がある。この装置に対する操作は,次の二つに限られる。

PUSH x:品物xを1個積み上げる。
POP:一番上の品物を1個取り出す。
a,b,c
b,a,c
c,a,b
c,b,a
『情報処理過去問.com』からiPhoneアプリがリリースされました!!

正解

解説

この装置は スタック で、次の性質を持ちます。
・品物は PUSH によって上に積まれる
・品物は POP によって一番上から取り出される
・つまり 後に積んだものほど先に取り出される(LIFO)

品物の到着順は a → b → c と固定されています。

最初に c を取り出すには、
a → b → c の順で PUSH してから POP する必要があります。

PUSH a
PUSH b
PUSH c
POP → c

この時点でスタックの中には、下から a, 上に b が残っています。

次に a を取り出したいところですが、
b が a の上に乗っている状態です。

スタックでは、上にあるものからしか取り出せないため、
POP を行うと必ず b が先に取り出されます。

そのため、
b を飛ばして a を先に取り出すことはできません。

以上の理由から、
c → a → b という順序はスタックの構造上、実現不可能です。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする