栈是一种特殊的线性表,它只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一段称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出(Last in First out)的原则。
C++的库函数中也提供了堆栈(stack)的基本操作。
#include#include stack s; int num; s.empty(); //堆栈为空则返回真 s.pop(); //移除栈顶元素 s.push(num); //在栈顶增加元素 s.size(); //返回栈中元素数目 s.top(); //返回栈顶元素
stack本意有堆叠的意思,和它后进先出的原则十分相似。一个堆栈像叠放在一起的盘子一样,只能取最上面的。而最先放进去的盘子只能到最后才能取出来。
用例:https://vjudge.net/problem/51Nod-3199
#include#include using namespace std; int main() { stack q; int n,op,x; cin>>n; while(n--) { cin>>op; if(op==1) { cin>>x; q.push(x); } else if(op==2) { if(q.empty()) cout<<"empty"<



