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


五.总结:


相关推荐
沛沛老爹21 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理
专注_每天进步一点点21 小时前
【java开发】写接口文档的札记
java·开发语言
代码方舟21 小时前
Java企业级实战:对接天远名下车辆数量查询API构建自动化风控中台
java·大数据·开发语言·自动化
flysh0521 小时前
C# 中类型转换与模式匹配核心概念
开发语言·c#
AC赳赳老秦21 小时前
Python 爬虫进阶:DeepSeek 优化反爬策略与动态数据解析逻辑
开发语言·hadoop·spring boot·爬虫·python·postgresql·deepseek
浩瀚之水_csdn21 小时前
Python 三元运算符详解
开发语言·python
源代码•宸1 天前
GoLang八股(Go语言基础)
开发语言·后端·golang·map·defer·recover·panic
rit84324991 天前
基于MATLAB的SUSAN特征检测算子边缘提取实现
开发语言·matlab
g***55751 天前
Java高级开发进阶教程之系列
java·开发语言
鲁正杰1 天前
【运维部署】现代化内网穿透与文件共享方案 (Rust)
运维·开发语言·rust