《征服数据结构》双端栈

摘要:

1,双端栈的介绍

2,双端栈的代码实现

1,双端栈的介绍

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

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

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

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

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

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

相关推荐
琢磨先生David4 小时前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
qq_454245035 小时前
基于组件与行为的树状节点系统
数据结构·c#
超级大福宝5 小时前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
岛雨QA7 小时前
常用十种算法「Java数据结构与算法学习笔记13」
数据结构·算法
weiabc7 小时前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法
wefg17 小时前
【算法】单调栈和单调队列
数据结构·算法
岛雨QA7 小时前
图「Java数据结构与算法学习笔记12」
数据结构·算法
czxyvX7 小时前
020-C++之unordered容器
数据结构·c++
岛雨QA7 小时前
多路查找树「Java数据结构与算法学习笔记11」
数据结构·算法
AKA__Zas7 小时前
初识基本排序
java·数据结构·学习方法·排序