応用情報技術者令和7年春期 午前問5

問5

A,B,Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,データの出力順序は何通りあるか。
05.png/image-size:166×114
  • 3
  • 4
  • 5
  • 6

分類

テクノロジ系 » アルゴリズムとプログラミング » データ構造

正解

解説

A,B,Cの出力順序としては「3!=6種類」があります。それぞれが出力可能であるかを検証します。
A,B,C
push(A) → pop → push(B) → pop → push(C) → pop の順序で出力可能です。
05_1.png/image-size:406×133
A,C,B
push(A) → pop → push(B) → push(C) → pop → pop の順序で出力可能です。
05_2.png/image-size:406×133
B,A,C
push(A) → push(B) → pop → pop → push(C) → pop の順序で出力可能です。
05_3.png/image-size:406×133
B,C,A
push(A) → push(B) → pop → push(C) → pop → pop の順序で出力可能です。
05_4.png/image-size:406×133
C,A,B
push(A) → push(B) → push(C) → pop → pop ❌
※Cの出力後、Bより先にAを出力することができないため無理な順序です。
05_5.png/image-size:346×133
C,B,A
push(A) → push(B) → push(C) → pop → pop → pop の順序で出力可能です。
05_6.png/image-size:406×133
以上より、データの出力順序は5通りになります。したがって「ウ」が正解です。

スタックの構造上、後からpushされた要素を出力した後、その要素より2つ以上前にpushされた要素を続けて出力することはできません。
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop