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


五.总结:


相关推荐
阿豪只会阿巴10 小时前
两小时快速入门 FastAPI--第一回
开发语言·python·fastapi
Hesionberger10 小时前
动态规划与二分法破解最长递增子序列
java·数据结构·python·算法·leetcode
你怎么知道我是队长11 小时前
JavaScript 事件介绍
开发语言·前端·javascript
CodeStats11 小时前
【Linux IO】从文件描述符到硬件中断:Linux IO 系统底层完全拆解
java·linux·开发语言·io·socket
aaPIXa62211 小时前
C++ 用 Claude Code 的 defending-code-reference-harness:C/C++ 内存漏洞自动发现与修复 Pipeline
java·c语言·c++
着迷不白11 小时前
Linux系统故障修复、日志管理与安全加固实战指南
开发语言·php
贺国亚11 小时前
A2A协议与Agent互操作-Task生命周期
开发语言·qt
炸薯条!11 小时前
从零开始学C++(4) --类和对象
开发语言·c++·算法
渡我白衣11 小时前
打印宏与socket模块设计
java·linux·开发语言·c++·ide·人工智能·eclipse