修了試験 2011-06-26実施分 基本情報技術者試験 問6
A,B,C,Dの順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
正答3
解説
正解は3です。 この問題は、スタック(後入れ先出し:LIFO)の性質を問うています。 データはA,B,C,Dの順に到着し、到着したものをスタックに積む(プッシュ)か、一番上のものを取り出す(ポップ)かを選べます。 【選択肢別解説】 1:× AをプッシュしてすぐポップしてAを出し、B,C,Dをプッシュしてポップすると次はDです。 その後、スタックの一番上はCなので、Bを先に出すことはできません。 2:× A,Bをプッシュしてポップすると、Bが出ます。 C,Dをプッシュしてポップすると、Dが出ます。 次の一番上はCなので、Aを先に出すことはできません。 3:○ A,B,Cをプッシュしてから、C,Bの順にポップします。 次にDをプッシュしてすぐポップし、最後に残ったAをポップすると、C,B,D,Aになります。 4:× A,B,C,Dをすべてプッシュしてから、D,Cをポップします。 次の一番上はBなので、Aを先に出すことはできません。 【ポイント】 スタックでは、後から積んだものより先に、それより前に積んだものを取り出すことはできません。 「先に出たデータより前に到着したデータは、到着と逆順でしか出せない」と考えると素早く判定できます。まとめて解く
修了試験 2011-06-26実施分を通しで解く(80問)→