除了工作用队列外,再设一双向队列temp.
入队时把入队的元素e与temp队尾的元素比较:
1、把temp中小于e的元素从temp队尾出队,直到大于等于e为止,并把e入temp队,e入工作队列;、
2、如果e小于等于temp队尾元素,就把e入temp和工作队。
出队时:
工作队头元素与temp队头比较,小于则直接从工作队出队,等于则工作队与temp同时出队.(不会出现大于的情况。)
MaxElement求最元素就取temp队头的元素.
例如:
入队顺序是1,2,3则:
temp: 3
工作队:1、 2、 3
再入2、1则:
temp:3、2、1
工作队:1、2、3、2、1
再入2则:
temp:3、2、2
工作队:1、2、3、2、1、2
如果再入4则:
temp: 4
工作队:1、2、3、2、1、2、4
阅读(1247) | 评论(0) | 转发(0) |