$$栈$$
栈到底是什么?
诚实一点……这两张图是抄过来的……
栈是一种“后进先出”的线性数据结构。在栈里,元素遵循后进先出的原则,也就是FILO(First In Last Out)。
栈是机器实现深度优先搜索(DFS)的基本结构(系统栈)。
你可以把栈理解为一个桶,每次放一件衣服到里面去,如果你要拿桶底的衣服,你就只能把它上面的衣服都拿出来。当然你把手伸到桶底将衣服扯出来或者是拿个大铁锤把桶砸烂也是可以的……(当我没说)
- 栈顶:栈中允许插入和弹出元素的一端
- 栈底:栈中不是栈顶的另一端 //好像是废话
- 压栈(入栈):栈中的插入操作,也叫进栈
- 弹栈(出栈):栈中的删除操作。
- 空栈:没有任何元素的栈
STL 栈
标题都有“STL”这三个显眼(有吗?)的字母了,所以……STL才是重点……
头文件:#include <stack>
定义:
stack<元素类型> 栈的名称
例如:stack<int> s
入栈:
名称.push(元素)
例如:s.push(1)
,这样就把元素$1$压入栈中。
出栈
名称.pop()
弹出栈顶元素
例如:s.pop()
,就弹出了s的栈顶元素。
判空
名称.empty()
如果栈为空则返回1,否则则返回0。
元素个数
名称.size()
例如s.size()
会返回栈s中的元素个数。
栈顶元素
名称.top()
返回栈顶元素
好啦~这次就到这里啦~
# QAQ
QAQ
hh也跟着大佬学STL
哈哈哈哈~下回跟我说一声奥,给我整蒙了QAQ,问题不大
直接用数组不是更方便一点。。。
………………………………………………………………