上一篇介绍queue的性质及其用法,queue是先进先出,而stack就与之相反,是先进后出的。
stack与queue一样没有遍历查询的功能,可以新开个数组来进行记录。
基本定义 stack<int> a;
基本操作:
a.top()
返回栈顶元素
a.pop()
移除栈顶元素
a.empty()
判断stack是否为空
a.size()
返回栈中元素个数
a.push(number)
在栈顶中增加元素
以数字游戏为例,简单介绍一下stack的运用。
#include<bits/stdc++.h>
using namespace std;
const int _MAXN=1e5;
int main(){
int n;
cin>>n;
stack<int>a;
for(int i=0;i<n;i++){
int num;
cin>>num;
while(!a.empty()){
if(a.top()<num) a.pop();
else{
break;
}
}
a.push(num);
}
int i;
int ans[_MAXN+10];
memset(ans,0,sizeof(ans));
for(i=0;!a.empty();i++){
ans[i]=a.top();
a.pop();
}
for(i=i-1;i>=0;i--) cout<<ans[i]<<endl;
return 0;
}