单调栈

来源:互联网 发布:战国红异端网络 编辑:程序博客网 时间:2024/06/06 13:00

单调栈是指栈中元素是按照严格单调递增或者单调递减的顺序,有以下两个性质(以单调递增栈为例):

1、从栈顶到栈底的元素是单调递增的

2、越靠近栈顶的元素,越后进栈。

单调栈只能在栈顶进行操作,即插入或者删除元素。操作过程(以单调递增栈为例):

如果当前元素是e,从栈顶开始遍历元素,如果栈顶元素小于等于e,则栈顶元素出栈,直到栈顶元素大于e或者栈空为止,再将e压入栈中。

一个单调递增栈的例子:

进栈元素分别为3,4,2,6,4,5,2,3

3进栈:(3)

3出栈,4进栈:(4)

2进栈:(4,2)

2出栈,4出栈,6进栈:(6)

4进栈:(6,4)

4出栈,5进栈:(6,5)

2进栈:(6,5,2)

2出栈,3进栈:(6,5,3)

以上左端为栈底,右端为栈顶。


本文参考:http://blog.csdn.net/alongela/article/details/8227707点击打开链接

0 0
原创粉丝点击