《征服数据结构》双端栈

摘要:

1,双端栈的介绍

2,双端栈的代码实现

1,双端栈的介绍

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

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

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

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

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

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

相关推荐
郝学胜-神的一滴2 小时前
Leetcode 969 煎饼排序✨:翻转间的数组排序艺术
数据结构·c++·算法·leetcode·面试
I_LPL9 小时前
hot100贪心专题
数据结构·算法·leetcode·贪心
m0_6727033112 小时前
上机练习第51天
数据结构·c++·算法
仰泳的熊猫13 小时前
题目2577:蓝桥杯2020年第十一届省赛真题-走方格
数据结构·c++·算法·蓝桥杯
灰色小旋风14 小时前
力扣13 罗马数字转整数
数据结构·c++·算法·leetcode
ccLianLian15 小时前
数论·欧拉函数
数据结构·算法
会编程的土豆16 小时前
C++中的 lower_bound 和 upper_bound:一篇讲清楚
java·数据结构·算法
HUTAC16 小时前
关于进制转换及其应用的算法题总结
数据结构·c++·算法
XW010599916 小时前
6-函数-1 使用函数求特殊a串数列和
数据结构·python·算法
沉鱼.4417 小时前
枚举问题集
java·数据结构·算法