《征服数据结构》双端栈

摘要:

1,双端栈的介绍

2,双端栈的代码实现

1,双端栈的介绍

双端栈主要利用了"栈底位置不变,栈顶位置动态变化" 的特点,可以让两个栈共享一块存储空间。在前面我们讲到用数组实现栈的时候,如果把数组的两端都当做栈底,就可以构造出两个栈。

双端栈是指将一个线性表的两端当做栈底分别进行入栈和出栈操作,如下图所示:

1,当 lTop==-1 时 表示左端栈为空,左端栈的有效元素个数为 lTop + 1 。

2,当 rTop==data.length 时,表示右端栈为空,右端栈的有效元素个数为 data.length - rTop 。

3,当 lTop+1==rTop 时,表示双端栈满 。

双端栈的常见函数相比普通栈的函数要多,因为双端栈要操作左右两个栈。

相关推荐
naturerun4 小时前
从数组中删除元素的算法
数据结构·c++·算法
酿情师7 小时前
区块链原理与技术02:区块链的数据结构04(区块结构)
数据结构·区块链
夏日听雨眠8 小时前
数据结构(循环队列)
数据结构·算法·链表
平行侠8 小时前
30MacLaren-Marsaglia算法故事文件
数据结构·算法
平行侠9 小时前
33水库抽样 - 从未知大小的流中等概率采样
数据结构·算法
Controller-Inversion9 小时前
42. 接雨水
数据结构·算法·leetcode
Controller-Inversion9 小时前
33. 搜索旋转排序数组
数据结构·算法·leetcode
宵时待雨10 小时前
优选算法专题6:模拟
数据结构·c++·算法·leetcode·职场和发展
Liangwei Lin10 小时前
LeetCode 35. 搜索插入位置
数据结构·算法·leetcode