栈(Stack )是支持push和pop两种操作的数据结构。push是在栈的顶端放入- -组数据的操作。反之,pop是从其顶端取出一-组数据的操作。 因此,最后进人栈的一-组数据可以最先被取出 (这种行为被叫做LIFO: Last In First Out,即后进先出)。通过使用数组或者列表等结构可以很容易实现栈,不过C++、Java等程序 语言的标准库已经为我们准备好了这一常用结构,在比赛中需要时不妨使用它们。C++的标准库中,stack::pop完成的仅仅是移除最顶端的数据。如果要访问最顶端的数据,需要使用stack::top函数(这个操作通常也被称为peek )。
stack的例子:
#include <bits/stdc++.h>
using namespace std;
int main() {
stack<int> s;
s.push(1);
s.push(2);
s.push(3);
cout<<s.top()<<endl;
s.pop();
cout<<s.top()<<endl;
s.pop();
cout<<s.top()<<endl;
s.pop();
return 0;
}