数据结构-3.1.栈的基本概念


一.栈的定义:

栈和线性表的区别:栈只能在表尾一端 进行插入或者删除的操作,而线性表可以在任意一个地方进行插入或者删除


二.有关栈的关键术语:


三.栈的基本操作:

1.回顾线性表的基本操作:

2.栈的基本操作:

对于删除栈里的元素,每次要删除栈里的元素时,必须把该元素上方的元素都出栈了才能删除,此时相当于删除栈顶元素。


四.已知进栈顺序,判断哪些出栈的顺序合法:

例如:

方案一:a,b,c,d,e依次进栈后,再依次出栈,顺序依次为e,d,c,b,a

方案二:进栈和出栈穿插的进行

a,b依次进栈,先只让b出栈,此时只剩下a,再依次进入c,d,e,最后都出栈即e,d,c,a

所以出栈顺序为b,e,d,c,a。

注意:无论进栈和出栈是否穿插进行,进栈都是按照a,b,c,d,e的先后顺序


五.总结:


相关推荐
小短腿的代码世界14 小时前
QCefView深度解析:在Qt中嵌入Chromium的架构设计与性能优化实战
开发语言·qt·性能优化
小短腿的代码世界14 小时前
Qt反射机制深度解析:从QMetaObject到运行时类型推导的底层密码
开发语言·qt
水木流年追梦14 小时前
【python因果库实战26】逆概率加权模型1
开发语言·python·算法·leetcode
2401_8401052014 小时前
题解: [GESP202409 八级] 美丽路径
数据结构·c++·算法·动态规划
今儿敲了吗14 小时前
链表篇(五)——链表中间结点
数据结构·笔记·算法·链表
BatyTao14 小时前
QT下载并安装
开发语言·qt
赵钰老师14 小时前
MATLAB在生态环境数据处理与分析中的应用
开发语言·matlab
杰建云16714 小时前
小程序从零搭建全流程实战指南
开发语言·小程序·php
李少兄14 小时前
解决 java.net.ConnectException: Connection refused 报错
java·开发语言·.net
YangWeiminPHD14 小时前
金水32051编译器:人与单片机CPU之间的桥梁
c语言·单片机·编译器