令和3年度 春期 応用情報技術者試験 午前 問5
A,B,Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,データの出力順序は何通りあるか。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
A, B, C の3つのデータの出力順序は、3! = 6通りが理論的に存在しますが、スタックの特性(後入れ先出し)により、すべての順序が可能とは限りません。
可能な出力順序の検証
-
[A, B, C]
- 手順: push(A) → pop → push(B) → pop → push(C) → pop
- 可能 -
[A, C, B]
- 手順: push(A) → pop → push(B) → push(C) → pop → pop
- 可能 -
[B, A, C]
- 手順: push(A) → push(B) → pop → pop → push(C) → pop
- 可能 -
[B, C, A]
- 手順: push(A) → push(B) → pop → push(C) → pop → pop
- 可能 -
[C, B, A]
- 手順: push(A) → push(B) → push(C) → pop → pop → pop
- 可能 -
[C, A, B]
- 手順: push(A) → push(B) → push(C) → pop → pop ×
- 不可能(Cを最初に出力するにはAを先に出す必要があるため無理)
結論
可能な出力順序は 5通り です。
答え
ウ: 5
出典:令和3年度 春期 応用情報技術者試験 午前 問5