什么是单调栈
单调栈中存放的数据应该是有序的,所以单调栈也分为单调递增栈和单调递减栈。
- 单调递增栈:从栈底到栈顶数据是从大到小
- 单调递减栈:从栈底到栈顶数据是从小到大
模拟单调栈的数据push和pop
现有一组树10、3、7、4、12,从左到右依次入栈,如果栈为空或者入栈元素值小于栈顶元素值,则入栈;否则,如果入栈会破坏栈的单调性,则需要把比入栈元素小的元素全部出栈。单调递减的栈则反之
- 10入栈时,栈为空,直接入栈,栈内元素为10
- 3入栈时,栈顶元素10比3大,则入栈,栈内元素为10、3
- 7入栈时,栈顶元素3比7