資料結構 優先佇列

2022-09-05 04:57:09 字數 803 閱讀 7679

堆的傳送門

優先佇列就是堆的在c++中的stl庫的版本,這裡放上三種宣告優先佇列的方式

需要匯入的標頭檔案為< queue >

priority_queueq;

priority_queueq; //node可以定義為自己申明的結構體

預設的佇列優先順序是從大到小,資料越優先順序越高

priority_queue,greater>q; //小根堆

priority_queue,less>q; //大根堆

//後面的兩個"> >"不能連著寫,會被編譯器誤認為位運算子

這裡的greater,less兩個型別如果不用萬能頭的話,需要匯入標頭檔案< functional >,第二個vector是動態陣列,屬於乙個容器型別引數,需要匯入標頭檔案< vector >

struct node

;struct node

};//這是另外一種過載方式,定義友元運算子

priority_queueq;

接下來提供一下優先佇列的基本操作函式

q.push();//進隊

q.pop();//出隊

q.top();//返回隊頭元素,*不是front*

q.size();//返回隊的長度

q.empty();//返回隊是否為空,1為空

q.back();//返回隊尾元素

選擇一種好記的,手感打起來好的記下來就行了。

資料結構 優先佇列

優先佇列是允許至少下列兩種操作的資料結構 insert 插入 deletermin 刪除最小者 它的工作室找出 返回 刪除優先佇列最小的元素。插入操作等於enqueue 入隊 而detemin則是佇列中dequeue 出隊 在優先佇列中的等價操作。determin函式也變更它的輸入。二叉堆 結構性 ...

資料結構 優先佇列

形象化描述 可以插隊的佇列。標頭檔案 定義方法 較為簡單的常見優先佇列可直接定義 如 priority queue,greater pq 即定義乙個越小的整數優先順序越大的優先佇列。若想實現自定義排序,需過載運算子 如 struct cmp 定義方法 priority queue,cmp pq 注意...

資料結構 優先佇列

優先佇列 pr iori tyqu eue priority queue prior ityq ueue 定義 普通的佇列是一種先進先出的資料結構,元素在佇列尾追加,而從佇列頭刪除。在優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除。優先佇列具有最高端先出 fi rsti...