平成29年度 秋期 午前 問5
データ構造
スタックに関する問題
A,B,C,D の順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
- アA, D, B, C
- イB, D, A, C
- ウC, B, D, A
- エD, C, A, B
答えと解説を見る
✓ これが正解ウC, B, D, A
解説
積み上げた順の逆にしか出せないので、一つだけが作れます。
スタックは、最後に入れたものから先に出す仕組みです。到着の順は決まっているので、入れる順も決まっていました。自由にできるのは、いつ出すかだけです。三つ目を先に出すには、一つ目と二つ目を先に積みます。すると次に出せるのは二つ目で、その次が四つ目でした。最後に残る一つ目が、いちばん後になります。だから三つ目、二つ目、四つ目、一つ目と並ぶ肢が当たりました。一つ目を先に出す肢は、続く四つ目も出せますが、その次に二つ目を求めています。二つ目より後に積んだ三つ目が上に残るので、二つ目は先に出せません。二つ目から始める肢も、途中で順が崩れました。四つ目の次に一つ目を出せば、三つ目が埋もれてしまいます。四つ目から順に出す肢は、最後の二つが逆でした。スタックは後入先出でした。順を飛べません。下に埋まった順を、そのまま守るしかありません。
ほかの選択肢はなぜ違うのか
- アA, D, B, C:一つ目、四つ目、二つ目、三つ目と述べています。一つ目を出し、続けて四つ目を出すところまでは、確かにできました。ところが次に二つ目を出そうとしています。二つ目の上には、三つ目が積まれていました。先に三つ目が出ます。順を飛び越せません。順を飛べません。
- イB, D, A, C:二つ目、四つ目、一つ目、三つ目と述べています。二つ目までは、確かに出せる形でした。けれども四つ目の次に一つ目を出しています。一つ目の上には、三つ目が積まれていました。三つ目が先に出ます。途中で崩れました。埋もれています。
- エD, C, A, B:四つ目、三つ目、一つ目、二つ目と述べています。すべて積んでから出す形になりました。四つ目と三つ目までは、確かに正しい順です。ところが次は二つ目でなければなりません。一つ目は最も下でした。最後の二つが逆です。下の順が残ります。
出典:平成29年度 秋期 基本情報技術者試験 午前 問5
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)