問5
A、B、C、Dの順に到着するデータに対して、一つのスタックだけを用いて出力可能なデータ列はどれか。
ア A、D、B、C
イ B、D、A、C
ウ C、B、D、A
エ D、C、A、B
正解
ウ
解説
スタックはLIFO (後入れ先出し) によりデータ列を操作する。
スタックに入れることをpush、スタックから出すことをpopという。
ア A、Dまでは出力可能。
イ B、Dまでは出力可能。
ウ 正しい。手順は以下の通り。
(便宜上、スタックの状態を左から順位表記する。)
Aをpush: スタック:A
Bをpush: スタック:AB
Cをpush: スタック:ABC
Cをpop : スタック:AB 出力:C
Bをpop : スタック:A 出力:CB
Dをpush: スタック:AD 出力:CB
Dをpop : スタック:A 出力:CBD
Aをpop : スタック: 出力:CBDA
エ D、Cまでは出力可能。
タグ:スタック