A,B,Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,データの出力順序は何通りあるか。

- 3
- 4
- 5
- 6
解答
ウ
解説
3つのデータの順番は、ABC、ACB、BAC、BCA、CAB、CBA、の6通りが考えられますので、それぞれ検証します。
- ABC
PUSH[A]→POP[A]→PUSH[B]→POP[B]→PUSH[C]→POP[C]
の順序で可能です - ACB
PUSH[A]→POP[A]→PUSH[B]→PUSH[C]→POP[C]→POP[B]
の順序で可能です - BAC
PUSH[A]→PUSH[B]→POP[B]→POP[A]→PUSH[C]→POP[C]
の順序で可能です - BCA
PUSH[A]→PUSH[B]→POP[B]→PUSH[C]→POP[C]→POP[A]
の順序で可能です - CAB
PUSH[A]→PUSH[B]→PUSH[C]→POP[C]→×
となり不可能です - CBA
PUSH[A]→PUSH[B]→PUSH[C]→POP[C]→POP[B]→POP[A]
の順序で可能です
よって、可能なデータ出力順序は5通りになります。
参考情報
分野・分類
| 分野 | テクノロジ系 |
| 大分類 | 基礎理論 |
| 中分類 | アルゴリズムとプログラミング |
| 小分類 | データ構造 |
出題歴
- AP 令和7年度春期 問5
- AP 令和3年度春期 問5
- AP 平成28年度春期 問5
- AP 平成24年度春期 問6