一、什么是栈
栈也是一种操作(或者说运算)受到限制的特殊线性表。
其插入和删除操作都限制在表的一端进行,这一端被称为“栈顶(top)”,相对的另一端称为“栈底(bottom)”。
两种操作:
-
“进栈(PUSH)”或者“压栈”
-
“出栈(POP)”。
栈的特点是:“先进后出(FILO,First In Last Out)”
二、stack容器
stack翻译为栈,是 STL 中实现的一个“后进先出”的容器,它提供了栈操作中的很多命令,非常方便。如:
-
访问栈顶元素:top()
-
删除栈顶元素:pop()
-
元素放入栈顶:push()
-
使用stack前,要先添加stack头文件,即
#include <stack>
(使用万能头文件也可以),同时,必须要有using namespace std
。
定义一个 stack 的方法如下:
stack<typename> name;
其中,typename 可以是任何基本类型或者容器,name 是栈的名字。
三、Stack 使用方法总结:
s.push(x); //入栈, 将 x 接到栈s的顶端。
s.pop(); //出栈,弹出栈顶端s的第一个元素,注意,并不会返回被弹出元素的值。
s.top(); // 访问栈顶端元素, 即最早被压入栈s的元素。
s.empty(); // 判断栈是否为空 , 当栈空时,返回true。
s.size(); // 访问栈中的元素个数。