stack(栈)是一种先进后出FILO(FIRST IN LAST OUT)的STL,需要用到头文件#include
a[++top]=k; a[top--]=0;
stacks;
stack当中包含了一点点函数
stacks; s.pop(); s.push(53); s.empty; s.size(); s.top();
pop表示将栈顶的元素删除
push表示在栈顶添加一个元素
empty返回判断栈是否为空
size返回栈的高度
top返回栈顶元素
那栈主要的用处是什么呢?
来模拟一些需要用到FILO元素的题(什么?你问我具体有哪些?我也不知道)
在c++函数当中,系统会自动给每一个函数分配一个栈,以方便使用引用函数的函数时,可以快速的将对应的函数找到。
像深度优先搜索,就是使用的栈的逻辑来模拟的。
队列
queueq;
队列是一种先入先出的STL,有一个头和一个尾,头尾之间的元素便是队列中的元素。
queueq; q.back(); q.empty(); q.front(); q.pop(); q.push(int k); q.size();
back返回队列最后一个元素
empty返回队列是否为空
front返回队列的‘头’
pop表示将队头元素剔除
push表示将一个元素存进队列内
size返回队列的长度
队列主要运用于广度优先搜索,用队列来储存每一次遍历到的坐标(广搜图形),节点(广搜树)等,再把头往前提,不停的做遍历,知道头和尾相等(或头比尾大)。



