时间限制 1000 毫秒
内存限制 32768 K字节
问题描述
做一个存放整数的栈Stack,输入一些栈的操作,输出操作的结果
输入
输入包含多行(少于10000行),每行包含一个操作命令,操作命令有PUSH, SIZE, POP, TOP, DUMP。PUSH后面带一个整数
(PUSH和整数间用一个空格隔开),把整数放入栈中;SIZE输出当前栈中元素的个数;TOP输出栈顶元素;POP输出栈顶元
素并把该元素从栈中删除;DUMP则从栈底到栈顶输出所有元素。
输出
对应于输入的指令,产生对应的输出。PUSH命令不产生任何输出;SIZE、POP、TOP命令都产生一行输出,一行一个整数;
DUMP命令产生多行输出,每行包含一个整数。
输入样例
PUSH 1
PUSH 2
PUSH 3
DUMP
SIZE
TOP
POP
POP
POP
输出样例
1
2
3
3
3
3
2
1
#include
#include
#define MAX 10000
using namespace std;
int main(int argc, char *argv[])
{
int T[MAX];
int i = 0;
string words;
while(cin >> words){
if(words == "PUSH"){
cin >> T[i];
i++;
}
else if(words == "POP"){
cout << T[i-1]<