数据结构之-栈

提前声明,部分源于书籍。并非完全本人总结。

数据结构-栈

栈?是什么呢?需要从数据结构讲起:

个人认为数据结构就是一个容器,为我们提供容器去装东西

但是你装的时候要去遵循它(数据结构)的规则,比如说今天要讲的栈,他就是后进先出(也可以说先进后出哈)。具体一会在仔细讲。


数据结构是什么讲完了,就需要了解了解什么是栈了~

栈是只能在某一端插入和删除的特殊线性表(来源于信息学奥赛一本通这本书)

假如你洗碟子(用了深入浅出程序设计竞赛这本书的例子)、

一大摞的碟子让你去洗,人家摞碟子

是不是一个一个从下往上摞碟子?

摞碟子摞好了给你去洗,你是不是从上往下去洗,对不?你想昂,按照这么来,摞碟子的时候的第一个摞上去的,是不是你最后一个洗的,也可以说,人家最后一个给你摞上去的盘子,是不是你第一个洗的盘子,这,就是栈(撒花)


再讲讲栈的操作哈

一个栈可以用定长为n的数组s来表示用一个栈指针top指向栈顶,如果top=0,表示栈空,top=n时栈满。进栈时top+1,退栈时top-1.当top<0时为下溢。栈指针在运算中永远指向栈顶

1.手搓进栈(push)

①:果top>=n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否满了,满则溢出;不满则作②)

②:top++(栈指针+1,指向进栈地址)

③:s[top]=x,结束(x为新进栈的元素)

2.手搓退栈(pop)

①:如果top<=0,则给出下溢信息,作出错处理(退栈之前先检查是否已为空栈,空则下溢)

②:x = s[top],(退栈后的元素赋给x)

③:top--,结束(栈指针-1,指向栈顶)

3.元素访问

st.top()//返回栈顶

4.修改

st.push()//插入传入的参数到栈顶
st.pop()//弹出栈顶



5.容量

st.push()//插入传入的参数到栈顶
st.pop()//弹出栈顶


强调:上面的编号3,4,5都是STL中的栈,STL的stack容器提供的这些函数哦~


在本文我不提供例题,请大家自行练习,本文写的相对潦草.


编写不易,麻烦点赞+评论一下~

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值