数据结构-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的先后顺序


五.总结:


相关推荐
码不停蹄的玄黓6 分钟前
Java 应用 CPU 过高排查全流程
java·开发语言·python
醉颜凉8 分钟前
Elasticsearch 核心数据结构:FST 原理与应用场景全解析
数据结构·elasticsearch·jenkins
love_muming14 分钟前
从 ArrayList 到 LinkedList:Java 集合中数组与链表的深度对比
java·数据结构·链表
江畔柳前堤19 分钟前
XZ09_Word和MD格式转换
开发语言·数据库·人工智能·python·深度学习·word
ZenosDoron20 分钟前
malloc规范
java·开发语言
codeejun20 分钟前
每日一Go-71、理论知识:CAP 、一致性原理 、Raft 机制(简化实现一个 Raft)
java·开发语言·golang
Aotman_22 分钟前
JavaScript数组对象中指定字段转换
java·开发语言·前端·javascript·vue.js·前端框架·es6
星河漫步Lu22 分钟前
Anaconda搭建深度学习虚拟环境
开发语言·python·深度学习
gCode Teacher 格码致知30 分钟前
Python教学:十六进制编码的显示方法-由Deepseek产生
开发语言·python·算法
2301_7779983430 分钟前
基础IO:IO操作&&重定向
linux·c语言