#4441. 模拟栈

模拟栈

题目描述:

栈是一种基本的数据结构。栈具有两种基本操作方式:pushpop

  • push 一个值会将其压入栈顶;
  • pop 则会将栈顶的值弹出。

现在我们来验证栈的使用。

每组测试数据开始时栈均为空。

你需要按照输入的操作指令模拟栈的操作,并对每次 A(询问栈顶值)输出结果:

  • 如果当时栈为空,输出 'E'
  • 否则输出栈顶元素的值。

输入格式:

对于每组测试数据:

  • 第一行输入一个正整数 $n$($0<n\leq10000$),表示本组测试数据的操作数。

  • 接下来 $n$ 行,每行的第一个字符可能是 'P''O''A'

    • 'P x':表示将整数 $x$ 压入栈顶;
    • 'O':表示弹出栈顶元素,如果栈为空则忽略本次操作;
    • 'A':表示询问当前栈顶的值,输出栈顶值或 'E'(当时栈为空)。

输入保证每组数据中入栈元素不超过 10000,栈中元素数量不会超出 int 范围。

当 $n=0$ 时,表示输入结束。


输出格式:

对于每组测试数据:

  • 按顺序输出本组中所有 'A' 操作的结果,每个结果占据一行;
  • 如果当时栈为空,则输出 'E'
  • 每组测试数据处理完后,输出一个空行。

5
P 75
O
O
P 60
A
7
A
O
P 73
P 49
A
O
P 3
0
60

E
49