单调栈
单调栈
定义
单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。
使用方法:就是从栈顶读出来一个元素,该元素满足单调性的某一端。例如取出栈中的最小值。
原理
将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。
例如,栈中自顶向下的元素为 {0,11,45,81}
。

插入元素 14 时为了保证单调性需要依次弹出元素 0,11
,操作后栈变为 {14,45,81}
。

用伪代码描述如下:
1 insert x 2 while !sta.empty() && sta.top()<x 3 sta.pop() 4 sta.push(x)
浙公网安备 33010602011771号