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


五.总结:


相关推荐
我能坚持多久5 分钟前
STL详解——list的介绍以及功能展示
开发语言·c++
Brilliantwxx8 分钟前
【C++】 继承与多态(上)
开发语言·c++·笔记·算法
ch.ju8 分钟前
Java程序设计(第3版)第四章——静态部分
java·开发语言
ZHOUPUYU10 分钟前
PHP 开发实战:从零搭建一个高性能的 RESTful API 服务
运维·开发语言·后端·html·php
不负岁月无痕10 分钟前
STL -- C++ string 类 模拟实现
java·开发语言·c++
ʚ希希ɞ ྀ11 分钟前
打家劫舍----背包dp
数据结构·算法·leetcode
Anastasiozzzz12 分钟前
万字深度实战!AI Agent 接入万物的底层密码:MCP 协议传输机制与开发指南(下篇)
java·开发语言·数据库·人工智能·ai·架构
会开花的二叉树15 分钟前
Qt初体验-第一个窗口程序踩的坑
开发语言·c++·qt
灰色人生qwer15 分钟前
python 中 BaseModel 在这里有什么用?
开发语言·python·状态模式
Byte Wizard15 分钟前
字符函数与字符串函数
c语言