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


五.总结:


相关推荐
CQ_YM3 分钟前
ARM--SDK、led、beep与链接脚本
c语言·arm开发·嵌入式硬件·嵌入式
CRMEB系统商城20 分钟前
CRMEB多商户系统(PHP)- 移动端二开之基本容器组件使用
运维·开发语言·小程序·php
淮北49424 分钟前
科研绘图工具R语言
开发语言·r语言
逍遥德31 分钟前
java Map Set List 扩容机制
java·开发语言·list
2501_9445215937 分钟前
Flutter for OpenHarmony 微动漫App实战:图片加载实现
android·开发语言·前端·javascript·flutter·php
nbsaas-boot37 分钟前
基于 Java 21 ScopedValue 的多租户动态数据源完整实践
java·开发语言
liuc031743 分钟前
Java项目关于不同key的读取
java·开发语言
博大世界1 小时前
matlab结构体数组定义
数据结构·算法
Zach_yuan1 小时前
面向对象封装线程:用 C++ 封装 pthread
开发语言·c++·算法
菜宾1 小时前
java-seata基础教学
java·开发语言·adb