单调栈即为满足单调性的栈结构。与栈相似,只允许在一端进行进出操作。
单调栈可以用于寻找下一个最大数,也可寻找下一个最小数,以及建立在这基础上的更高级的模型。
二、单调栈的结构与操作 1.插入操作将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。
例如,栈中自顶向下的元素为 1 , 3 , 5 , 10 , 30 , 50 {1,3,5,10,30,50} 1,3,5,10,30,50,插入元素 20 20 20 时为了保证单调性需要依次弹出元素 1 , 3 , 5 , 10 1,3,5,10 1,3,5,10,操作后栈变为 20 , 30 , 50 20,30,50 20,30,50。
用伪代码描述如下:
insert x
while !sta.empty() && sta.top()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?