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

- 3
- 4
- 5
- 6
分類
テクノロジ系 » アルゴリズムとプログラミング » データ構造
正解
ウ
解説
A,B,Cの出力順序としては「3!=6種類」があります。それぞれが出力可能であるかを検証します。
スタックの構造上、後からpushされた要素を出力した後、その要素より2つ以上前にpushされた要素を続けて出力することはできません。
- 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,A,B
- push(A) → push(B) → push(C) → pop → pop ❌
※Cの出力後、Bより先にAを出力することができないため無理な序です。 - C,B,A
- push(A) → push(B) → push(C) → pop → pop → pop の順序で出力可能です。
スタックの構造上、後からpushされた要素を出力した後、その要素より2つ以上前にpushされた要素を続けて出力することはできません。