AcWing 828. 模拟栈
原题链接
简单
作者:
Hope_
,
2021-06-05 21:15:13
,
所有人可见
,
阅读 220
c++模拟栈
C++ 代码
#include<iostream>
#include<string>
using namespace std;
const int N=1e5;
int stk[N];
int idx=-1;//idx最开始指向栈底再向下一个位置
int m;
//向栈顶插入一个数x
void InsertTop(int x){
stk[++idx]=x;
}
//从栈顶弹出一个数
void PoP(){
idx--;
}
//判断栈是不是空
void IsEmpty(){
if(idx==-1){
cout<<"YES"<<endl;
}
else cout<<"NO"<<endl;
}
//查询栈顶元素
int Visit(){
return stk[idx];//因为最开始是指向栈底向下一个位置 所以访问的时候就不需要-1
//这里面不需要考虑栈是空的情况
}
int main(){
int x;
string s;
cin>>m;
while(m--){
int x;
cin>>s;
if(s=="push"){
cin>>x;
InsertTop(x);
}
else if(s=="pop"){
PoP();
}
else if(s=="empty"){
IsEmpty();
}
else{
cout<<Visit()<<endl;
}
}
return 0;
}