题目
栈 先进后出 有底的罐子,只能从最上面取后放入的内容
队列 先进先出 没底的罐子 ,可以从最下面取先放入的内容
解释
- 对于模拟栈需要有4个操作
- push x是向栈顶插入一个数x
- pop 从栈顶弹出一个数
- empty 判断栈是否为空
- query 查询栈顶元素
代码段
标准模板操作
const int N=1e5+10;
int stk[N],tt;
//插入
skt[++tt]=x;
//弹出
tt--;
//判断栈是否为空
cout<<(tt?"NO":"YES")<<endl;
题解
#include<iostream>
using namespace std;
const int N=1e5+10;
int stk[N],tt;
int m;
int main()
{
cin>>m;
while(m--)
{
string op;
int x;
cin>>op;
if(op=="push")
{
cin>>x;
stk[++tt]=x;
}
else if(op=="pop")tt--;
else if(op=="empty")cout<<(tt?"NO":"YES")<<endl;
else cout<<stk[tt]<<endl;
}
return 0;
}