题目描述
请你实现一个栈(stack),支持如下操作:
push(x):向栈中加入一个数 xx 。
pop():将栈顶弹出。如果此时栈为空,则不进行弹出操作,并输出 Empty Stack
。
top():输出栈顶元素。如果此时栈为空,则输出 Empty Stack
size():输出此时栈内元素个数。
输入格式
第一行,一个整数 n~(n\lt100)n (n<100) 表示操作的次数。
接下来 nn 行,每行表示一个操作。格式如下:
1,表示将元素 x~(1\le x\le 1000)x (1≤x≤1000) 加入栈。
2,表示将栈顶弹出栈。
3,表示查询栈顶。
4,表示查询栈内元素个数。
输出格式
输出若干行,对于每个操作,按「题目描述」输出结果。
每条输出之间应当用空行隔开。
样例输入
10
1 1
3
2
4
2
1 2
1 3
3
4
2
样例输出
1
0
Empty Stack
3
2
问题提示
无
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
stack<int> q;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>m;
if(m==1)
{
cin>>k;
q.push(k);
}
if(m==2)
{
if(q.empty())
{
cout<<"Empty Stack"<<endl;
}
else
{
q.pop();
}
}
if(m==3)
{
if(q.empty())
{
cout<<"Empty Stack"<<endl;
}
else
{
cout<<q.top()<<endl;
}
}
if(m==4)
{
cout<<q.size()<<endl;
}
}
return 0;
}