当前位置:网站首页>第三章 栈
第三章 栈
2022-07-22 22:36:00 【isxhyeah】
一、栈
只允许从一端插入或删除的线性表,“先进后出”。
向栈中插入元素称为“入栈”,删除元素称为“出栈”。
二、共享栈
两个栈共同开辟一个存储空间,让一个栈的栈底为该空间的始端,另一栈的栈底为该空间的末端。
当元素进栈时,都从两端向中间延伸,这样能使剩余空间为任意一个栈使用。

三、链栈
链栈就是使用链式结构来实现栈,链栈的空间可以是不连续分配。

顺序栈和链栈的比较
1)时间性能比较
顺序栈和链栈的基本操作的算法,时间复杂度均为O(1)。
2)空间性能比较
初始时顺序栈必须确定一个固定的长度,所以有存储元素个数的限制和空间浪费的问题。
链栈无满栈问题,只有当内存没有可用空间时才会出现满栈,但是每个元素都需要一个指针域,从而产生了结构性开销。
一般结论:当栈在使用过程中元素个数变化较大时,用链栈比较好,反之,应该采用顺序栈。
四、栈的应用
主要在括号匹配、表达式求值、递归中。
前缀、中缀和后缀表达式
前、中、后缀表达式的区别取决于操作符和操作数的位置:
1、前缀表达式:操作符在操作数前面,可通过前序遍历表达式树获得。
2、中缀表达式:操作符在操作数中间,可通过中序遍历表达式树获得(中缀表达式通过中序遍历得到后的括号是必须的)。
3、后缀表达式:操作符在操作数后面,可通过后序遍历表达式树获得。
边栏推荐
- Matlab保存数据到csv文件的方法分享
- This is not a true sense of the meta universe, which should have its own distinctive characteristics and unique development logic
- The boss asked me to do an IP territorial function and an open source library!
- Experiment 7 H.264 file analysis
- 深入浅出地理解STM32中的中断系统——从原理到简单工程示例——保姆级教程
- LeetCode 第26天
- 这不是真正意义上的元宇宙,元宇宙应当具备自身鲜明的特质和独特的发展逻辑
- Live broadcast preview | live broadcast Seminar on open source security governance models and tools
- Web资源共享
- 读书笔记->统计学】12-02 置信区间的构建-t分布概念简介
猜你喜欢
随机推荐
Jmeter查看结果树之查看响应的13种详解方法!
[reading notes > statistics] 12-01 construction of confidence interval - Introduction to the concept of confidence interval
leetcode-382.链表随机节点
机器学习笔记 - 基于深度学习(HomographyNet)的图像单应性估计
TensorRT的插件实战(1)
matlab ode45求解微分方程
C语言函数(1)
项目升级遇到的坑
js 正则删除span标签以及标签里面的内容
LC:剑指 Offer 39. 数组中出现次数超过一半的数字
RequestContextHolder
昇思易点通 | 经典卷积神经网络的深度学习解析
论文阅读:The Perfect Match: 3D Point Cloud Matching with Smoothed Densities
Matlab保存数据到csv文件的方法分享
How to use selenium.chrome to realize the extended function of intercepting or forwarding requests
U盘被格式化数据能恢复吗,U盘被格式化了怎样恢复
Tensorrt plug-in practice (1)
目标检测之锚点与锚框
轻松带你走进turtle绘图的大门
Change this point to understand










