定義多級判斷的優先順序佇列

2021-08-29 03:57:43 字數 962 閱讀 3126

先講一下stl中優先順序佇列的基礎知識,如果已經會的略過~~

其實就是stl封裝的乙個堆,預設為大頂堆,所以直接定義乙個優先順序佇列的話

priority_queueque;
輸入進去一些int型的數,輸出的話就是先輸出大的後輸出小的,也就是所謂的大頂堆。

優先順序佇列的基本操作有:

priority_queueque;  //定義乙個存int型的優先順序佇列,先輸出大的後輸出小的

que.empty();                     //如果為真返回 true 否則返回 false

que.pop();                         //刪除佇列的首元素

que.top();                          //返回佇列的首元素    區分與一般的佇列,一般的隊列為:que.front();

que.size();                         //返回佇列裡面的元素個數

que.push(x);                      //向優先順序佇列中加入乙個x元素

標頭檔案 : #include

最一般的優先順序佇列的宣告方式就是剛才在上面講過的

那麼怎麼自定義輸出規則呢,下面慢慢說:

1、比較普通的的自定義方式:

priority_queue, greater> que; //從小到大輸出

priority_queue, less> que; //從大到小輸出

2、單級的_自定義優先順序順序:

struct cmp

}priority_queue, cmp > que;

3、多級的_自定義優先順序順序:

struct node

};priority_queueque;

STL 優先佇列 定義 優先順序

預設的優先佇列是個極大堆,如果要改變優先佇列中元素的優先順序,有下面這些方法 struct cmp1 struct cmp2 struct node2 int u bool operator const node2 a const return uq1 採用預設優先順序構造佇列 priority q...

佇列 優先順序佇列

優先順序佇列的隊尾是不需要改變的,永遠在低下標處。當佇列增加資料時,隊頭的位置就是資料項的大小減去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中最大關鍵字並返回該最大關鍵子...