
栈与队列
文章平均质量分 72
mach7
nil
展开
-
单调队列与滑动窗口(Sliding window, poj2823)
单调队列,顾名思义,就是(严格)单调(递增或递减)的队列。下面以单调递减队列为例。单调递减队列:1.单调递减的队列,队首元素总是最大的。2.元素只能从队尾入队,但可以从队尾或队首出队。若待入队的元素>=队尾元素,队尾元素出队,直到待入队的元素=窗口宽度,说明队首元素已不在窗内,队首元素出队。3.单调队列有两个单调性:(1)元素的值是严格单调的,这里是严格单调递减;(2)原创 2014-02-26 11:14:04 · 2464 阅读 · 0 评论 -
栈、Rails(poj1363)与Catalan数
栈是一种线性的、只能在一端操作的、后进先出的数据结构。Rails(poj1363)若1,2,3,4,...,n依次进栈(但不一定是依次连续进栈),然后再出栈,判断某个出栈序列的合法性。思路:人工模拟进栈、出栈的过程。例如,1,2,3,4,5依次进栈,现有出栈序列3,4,2,1,5,问是否合法?第一个出栈的是3,栈目前空,所以1,2,3进栈;栈目前非空,为1,2,3,原创 2014-02-26 11:02:12 · 1246 阅读 · 0 评论 -
用栈将中缀表达式转化为后缀表达式
中缀表达式就是我们通常使用的表达式。后缀表达式,又称为逆波兰表达式,所有操作符置于操作数的后面,且不需要括号来标示操作符的优先级。举个例子:中缀表达式为a*(b+c),其对应的后缀表达式为abc+*。那么,后缀表达式如何计算呢?用栈。以后缀表达式abc+*为例:从左向右依次扫描。操作数入栈,a入栈,b入栈,c入栈;遇到运算符+,取出栈顶的两个元素进行计算,此时为b+c(原创 2014-02-26 10:51:38 · 1844 阅读 · 0 评论