Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588399
  • 博文数量: 201
  • 博客积分: 3076
  • 博客等级: 中校
  • 技术积分: 2333
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:44
文章分类

全部博文(201)

文章存档

2010年(118)

2009年(83)

我的朋友

分类: C/C++

2009-11-20 23:43:20

除了工作用队列外,再设一双向队列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


阅读(1205) | 评论(0) | 转发(0) |
0

上一篇:字符串相似度

下一篇:4.2瓷砖覆盖地板

给主人留下些什么吧!~~