標頭檔案#include
定義:priority_queue
ype 就是資料型別,container 就是容器型別(container必須是用陣列實現的容器,比如vector,deque等等,預設用的是vector),functional 就是比較的方式,可以自定義,預設是大頂堆
基本操作:
empty() 如果隊列為空,則返回真
pop() 刪除對頂元素,刪除第乙個元素
push() 加入乙個元素
size() 返回優先佇列中擁有的元素個數
top() 返回優先佇列對頂元素,返回優先佇列中有最高優先順序的元素
#include
#include
#include
#include
using namespace std;
struct cmp1//定義比較結構};
struct cmp2};
struct struct1};
struct struct2};
intmain()
; struct1 num1[10]
; struct2 num2[10]
;for
(int i=
0;i<
10;i++
) priority_queue<
int>q0;
//預設大頂堆
priority_queue<
int,vector<
int>
,cmp1>q1;
//小頂堆
priority_queue<
int,vector<
int>
,cmp2>q2;
//大頂堆
priority_queue<
int,vector<
int>
,greater<
int>
>q3;
//小頂堆
priority_queue<
int,vector<
int>
,less<
int>
>q4;
//大頂堆
priority_queueq5;
//小頂堆
priority_queueq6;
//大頂堆
for(
int i=
0; i<
10; i++
) cout<<
"q0:"
(!q0.
empty()
) cout<"q1:"
(!q1.
empty()
)
cout<"q2:"
(!q2.
empty()
) cout<"q3:"
(!q3.
empty()
)
cout<"q4:"
(!q4.
empty()
) cout<"q5:"
(!q5.
empty()
)
cout<"q6:"
(!q6.
empty()
)return0;
}
輸出
q0:890 789 546 234 34 9 7 4 2 0
q1:0 2 4 7 9 34 234 546 789 890
q2:890 789 546 234 34 9 7 4 2 0
q3:0 2 4 7 9 34 234 546 789 890
q4:890 789 546 234 34 9 7 4 2 0
q5:0 2 4 7 9 34 234 546 789 890
q6:890 789 546 234 34 9 7 4 2 0
優先順序佇列 c
優先順序佇列 typedef struct datatype typedef struct seqpqueue void initiate seqpqueue q int queuenotempty seqpqueue q else int queuedelete seqpqueue q,datat...
佇列 優先順序佇列
優先順序佇列的隊尾是不需要改變的,永遠在低下標處。當佇列增加資料時,隊頭的位置就是資料項的大小減去1.public class priorityq 插入 public void insert long item else quearray j 1 item nitem 刪除 public long ...
優先順序佇列
分為最小優先順序佇列和最大優先順序佇列。優先順序佇列是一種用來維護一組元素構成的集合s的資料結構,這一組元素都有乙個關鍵字key,乙個最大優先順序佇列支援的操作 insert s,x 把x插入到集合s中 maxmum s 返回s中最大元素 extra max s 去掉s中最大關鍵字並返回該最大關鍵子...