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

平成28年度 秋期 (特別措置試験) 問92

基礎理論

スタックに関する問題

後に入れたデータが先に取り出されるデータ構造(以下,スタックという)がある。これを用いて,図に示すような,右側から入力されたデータの順番を変化させて,左側に出力する装置を考える。この装置に対する操作は次の3通りである。

この装置の右側から順番にデータA,B,C,Dを入力した場合に,この①〜③の操作を組み合わせても,左側に出力できない順番はどれか。

〔図〕(枠と矢印で描いた装置図)

入力 A, B, C, D ──→ 装置 ──→ 出力
   装置の中身: ① 素通り(入力→出力)
              ② 積む(入力→スタック)
              ③ 取り出す(スタック→出力)
答えと解説を見る

✓ これが正解エC,D,A,B

解説

二つためたら、入れた順の逆でしか取り出せなくなります。

後から入れたものが先に出る入れ物なので、二つ以上ためた時点で、出る順は入れた順の逆に固定されます。ここが手がかりです。素通りさせる道もあるので、ためずに出すこともできますが、いったんためた二つの前後を入れ替えることはできません。だから、出力の並びを見て、先に入るはずのものが後ろに来ている組を探し、その二つが同時に入れ物の中にいるかどうかを確かめます。同時にいるなら、その並びは作れません。作れる三つについては、ためる、素通りする、取り出すの三つを順に当てていけば、実際に手が動きます。できないほうを訊かれているので、三つ作れた時点で残りが答です。後入れ先出しのこの入れ物をスタックと呼び、先入れ先出しのものはキューと呼びます。シラバスはリストや木構造と並べて、データ構造の用語例に挙げています。

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

出典:平成28年度 秋期 ITパスポート試験(特別措置試験) 問92

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