平成15年春期試験問題 午前問10
広告
解説
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された要素を続けて出力することはできません。
広告