3
10
2015
0

【存档】优先队列(Abstract Data Type,ADT)

其实早就想存个档了(→_→)

优先队列,说白了就是会有急诊病人插队的情况,它基本不符合先进先出的准则。

优先队列也定义在头文件<queue>中,用 “priority_queue<int>Q" 声明,Q是一个越大的整数优先级越高的优先队列

当然也可以自定义优先级比较方法,与sort里的cmp类似,可用结构体完成,例如,要实现定义一个”个位数小的整数优先级高”的优先队列,构造结构体cmp:

struct cmp{
	bool operator()(const int a,const int b)const{
		return a%10>b%10;
	}
};

然后就可用 “priority_queue<int,vector<int>,cmp>Q"定义

STL还提供了更简单的定义方法,”越小的整数优先级越大“可写成  ”priority_queue<int,vector<int>,greater<int> >Q;“,要注意的是最后两个">"不能写在一起,容易被识别为">>"运算符

优先队列主要的三个操作

① push()  入队

② pop()  出队

③ top()  取队首元素(不删除)

练习题:poj3253

 

loading...

Category: 数据结构 | Tags: | Read Count: 611

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com