栈就是一个先进后出,后进先出的东西如图
从图中我们可以知道如这个栈的顺序是ABCD但只有一个口所以先进后出,后进先出,栈同时也用于深度优先搜索中
你可以把一个栈理解为蒸包子中间会有隔板把包子隔开然后美味的包子就出咳咳有点跑题
这样栈的基本性质就简单的讲完了我们先做一点练习吧! 一个栈k入栈顺序为3 5 2 4 1 请求出出栈顺序
先不要看答案
答案是1 4 2 5 3
还是那句话先进后出,后进先出
让我们加大难度吧!
一个栈k入栈顺序是 2 3 4 6
中途可能有数出栈请问出栈顺序有可能是
3 6 4 2
吗?
答案是可能
因此是
- 2进栈3进栈3出栈4进栈6进栈6出栈4出栈2出栈 好了进本性质的练习也讲完了 我们现在来谈一下栈的定义 栈的定义也是十分简单直接 stack<定> 变量名 如
#include<bits/stdc++.h>
using namespace std;
stack<string> p;//定义一个字符串栈p
int main()
{
;
}
然后我们再来讲一下栈的运用 你建立的栈的名称如上文的p(后文栈的名称我们都先代表p)
p.push(t);(把元素t压入栈t即入栈)
p.pop();(把栈顶删除)
p.top();(返回栈顶元素)
p.empty();(判断栈是否为空)
p.size();(读取栈中元素的个数)
ok啊这一些基本的也讲完了我的浅谈栈也到此结束了由于赶时间我就不搞练习了拜拜(我也可能会更新一点用法记得随时关注)