アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20110626 実施分 問6
A,B,C,D の順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
- ア A,D,B,C
- イ B,D,A,C
- ウ C,B,D,A
- エ D,C,A,B
出典:基本情報技術者試験 科目A免除 修了試験 20110626 実施分 問6
答えと解説を見る
正解:ウ
覚える知識
スタックで出力可能なデータ列の判定
スタックは後入れ先出しであり、入力順を保つ範囲でpushとpopを組み合わせて出力列を作る。
この問題で必要なこと
A,B,C,Dの順にpushし、任意のタイミングでpopできる。C,B,D,Aは、A,B,Cをpush→C,Bをpop→Dをpush→D,Aをpopで得られる。
ひっかけ
A,D,B,CやD,C,A,Bなどは、スタックでは取り出せない順序を含む。
この知識の出題:本試験系 2 回・免除試験 6 回(公開問題での観測値)