#4441. 模拟栈
模拟栈
题目描述:
栈是一种基本的数据结构。栈具有两种基本操作方式:push 和 pop。
- 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