一、stack的基本概念
stack的中文名字叫做栈。栈是什么呢?
啊,网上说,弹夹就是一个栈。
大家看,我们往弹夹里边装子弹,最先射出来的是最后放进去的那枚子弹,以此类推,最先进去的最后出来。
这就是stack遵循的策略:先进后出策略(First In Last Out,简称FILO)。
所以说,stack就是一个遵守FILO策略的链表。
栈就像一摞书,
我们要往上叠,只能叠在最上方。要取,只能取最上方的那一本。
这样理解的话,后面可能比较方便。
二、stack的头文件
stack需要以下两个头文件:
#include<stack>
using namespace std;
三、stack的声明与构造函数
stack声明的基本结构是这样的:
stack<数据结构>队列名;
比如:
stack<int> i;
stack<double> d;
stack<node> n;//node是一个结构体
四、stack的基本操作
首先,我们stack<int> s;
s.size();//返回s里元素个数
s.empty();//返回s是否为空,空则返回1,否则返回0
s.push(k);//在s的最上方插入k
s.pop();//删掉s的最上方的元素
s.top();//返回s的最上方的元素
stack的基本操作也就这么多,看起来没什么好讲的。但是,只要会应用,它的用处可大多了!