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