C 優先順序佇列

2021-09-13 03:48:15 字數 2038 閱讀 7457

標頭檔案#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中最大關鍵字並返回該最大關鍵子...