单调栈
就是栈中元素出栈顺序呈单调递增或单调递减的一种栈;
单调递增栈:数据出栈的序列为单调递增序列;
单调递减栈:数据出栈的序列为单调递减序列;
强调是出栈顺序,而不是栈中元素排列顺序;
例如 5 1 2 6 9 4;
从左往右读取(以单调递增为例,读取到比栈顶元素大的数,栈顶元素出栈,读取到比栈顶元素小的数或栈为空,入栈):
栈中元素为空,5入栈;
栈顶元素5大于1,1入栈,栈中元素为5,1;
栈顶元素1小于2,1出栈,2入栈,栈中元素为5,2;
栈顶元素2小于6,2出栈,此时栈顶元素为5,5小于6,继续出栈,栈空,6入栈;
栈顶元素6小于9,6出栈,栈空,9入栈,栈中元素为9;
栈顶元素9大于4,4入栈,栈中元素为9,4;