栈
在此感谢以下人对本篇文章的修改建议:
fast_photon :提出打字错误以及学术错误
xhee :提出学术错误
ningago :帮助解决学术错误
Node_Edge :理解上的优化
1. 栈的基础知识
定义:栈的修改是按照后进先出的原则进行的,因此栈通常被称为是后进先出(last in first out)表,简称
首先栈一端封死(称为 栈底 ,
那么我们该如何用代码实现栈呢,其实我们可以用数组来模拟,首先我们可以把一个数组竖着放如下图:
数组可以很好的模拟栈。数组的开头
然后我们可以用一个结构体即:
struct Stack {
int a[100000];
int top //栈顶
} tot;
关于结构体的使用不会的同学或者说是好奇的同学可以自行上网搜索我就不多说了。
以上就是栈的基本知识,让我们进入下一个章节 φ(≧ω≦*)♪
2. 栈的操作
-
向栈中加入一个数
-
将栈顶弹出。如果此时栈为空则不进行弹出操作并且会报错
-
输出栈顶元素
-
输出此时栈内元素个数
-
如果该栈为空输出
true ,反之不为空输出false
需要注意一下 弹出不意味输出 ,同时 输出不意味弹出 。
输出此时栈内元素个数其实就是你的栈顶(
向栈中加入一个数注意是从栈顶加入
3. STL的使用
-
q.size():输出此时栈内元素个数 -
q.top():输出栈顶元素
4. 实战
让我们来点题目吧!
B3614 【模板】栈
P1739 表达式括号匹配
P1449 后缀表达式