第1種情報処理技術者試験 2000年度 = 平成12年度 午前 問10

 A、B、Cの順序で入力されるデータがある。各データについてスタックヘの挿入と取出しを一度ずつ任意のタイミングで可能とする場合、データの出力順序は何通りあるか。


ア 3 イ 4 ウ 5 エ 6

解答



解説

 スタックは、後入れ先出しLIFOlast-in first out)によってデータを蓄えるデータ構造です。
 本問では、A、B、Cが順にプッシュ(挿入)されます。ポップ(取出し)は、データが一つ以上蓄えられているときにのみ行えますので、以下に示すように、5通りの出力順序があります。

[1]      PUSH A   POP A  PUSH B   POP B  PUSH C   POP C      ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃A┃  ┃ ┃  ┃B┃  ┃ ┃  ┃C┃  ┃ ┃   A、B、C   ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛ [2]      PUSH A   POP A  PUSH B  PUSH C   POP C   POP B     ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃C┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃A┃  ┃ ┃  ┃B┃  ┃B┃  ┃B┃  ┃ ┃   A、C、B   ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛ [3]      PUSH A  PUSH B   POP B   POP A  PUSH C   POP C     ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃B┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃A┃  ┃A┃  ┃A┃  ┃ ┃  ┃C┃  ┃ ┃   B、A、C   ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛ [4]      PUSH A  PUSH B   POP B  PUSH C   POP C  POP A     ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃B┃  ┃ ┃  ┃C┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃A┃  ┃A┃  ┃A┃  ┃A┃  ┃A┃  ┃ ┃   B、C、A   ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛ [5]      PUSH A  PUSH B  PUSH C   POP C   POP B   POP A     ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃ ┃  ┃C┃  ┃ ┃  ┃ ┃  ┃ ┃   ┃ ┃  ┃ ┃  ┃B┃  ┃B┃  ┃B┃  ┃B┃  ┃ ┃   ┃ ┃  ┃A┃  ┃A┃  ┃A┃  ┃A┃  ┃A┃  ┃A┃   C、B、A   ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛  ┗━┛


BohYoh.comトップページへ