单调栈 队列学习

Posted ccut-ry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单调栈 队列学习相关的知识,希望对你有一定的参考价值。

推荐博客 : https://blog.csdn.net/zuzhiang/article/details/78134247

 

单调栈、队列只需满足两个条件即可,序列是单调的,并且符合栈和队列的特性。

实现:

例如实现一个单调递增的栈,比如现在有一组数10,3,7,4,12。从左到右依次入栈,则如果栈为空或入栈元素值小于栈顶元素值,则入栈;否则,如果入栈则会破坏栈的单调性,则需要把比入栈元素小的元素全部出栈。单调递减的栈反之。

 

10入栈时,栈为空,直接入栈,栈内元素为10。

3入栈时,栈顶元素10比3大,则入栈,栈内元素为10,3。

7入栈时,栈顶元素3比7小,则栈顶元素出栈,此时栈顶元素为10,比7大,则7入栈,栈内元素为10,7。

4入栈时,栈顶元素7比4大,则入栈,栈内元素为10,7,4。

12入栈时,栈顶元素4比12小,4出栈,此时栈顶元素为7,仍比12小,栈顶元素7继续出栈,此时栈顶元素为10,仍比12小,10出栈,此时栈为空,12入栈,栈内元素为12。

 

以上是关于单调栈 队列学习的主要内容,如果未能解决你的问题,请参考以下文章

单调队列单调栈优先队列模板

单调栈以及单调队列

单调队列单调栈

学习笔记::单调栈

单调栈&单调队列

单调队列 单调栈