過去問ドリル

令和元年度 秋期 ITパスポート試験 問62

テクノロジ/アルゴリズム

下から上へ品物を積み上げて,上にある品物から順に取り出す装置がある。この装置に対する操作は,次の二つに限られる。 PUSH x:品物xを1個積み上げる。 POP: 一番上の品物を1個取り出す。 最初は何も積まれていない状態から開始して,a,b,cの順で三つの品物が到着する。一つの装置だけを使った場合,POP操作で取り出される品物の順番としてあり得ないものはどれか。

令和元年度 秋期 ITパスポート試験 問62の図

出典:令和元年度 秋期 ITパスポート試験 問62

正解:ウ

解説

この装置は「後に入れたものを先に取り出す」スタック(後入れ先出し)です。a,b,cの順に到着するので,PUSHはこの順にしかできません。cを最初に取り出すには,a,b,cを全てPUSHしてからPOPするので,その時点でスタックは下からa,b,cとなり,次に取り出せるのはbで,aより先にbを取り出すしかありません。したがって「c,a,b」の順では取り出せません。

下線の用語は 用語集 で意味を確認できます。

選択肢ごとの解説

  • ア誤り。PUSH a→POP→PUSH b→POP→PUSH c→POP とすれば,a,b,c の順に取り出せます。
  • イ誤り。PUSH a→PUSH b→POP(b)→POP(a)→PUSH c→POP とすれば,b,a,c の順に取り出せます。
  • ウ正しい。cを先に取り出すには,a,b,cが全て積まれており,下からa,b,cの順なので,次に取り出せるのはbです。a が先に出ることはありません。
  • エ誤り。PUSH a,b,c と全て積んでから POP を3回行えば,c,b,a の順に取り出せます。
ITパスポートの過去問を演習モードで解く