C++ 標準模板庫 (STL) 中的優先順序佇列


優先順序佇列是一種抽象資料型別,用於儲存優先順序元素集合,支援基於優先順序插入和刪除元素,即隨時可以刪除優先順序最高的元素。與堆疊、佇列和列表等容器不同,優先順序佇列不會按照元素在容器中的位置對元素以線性方式儲存。優先順序佇列抽象資料型別根據元素的優先順序儲存元素。

優先順序佇列支援以下函式

Size() − 用於計算優先順序佇列的大小,即返回佇列中的元素數量。

Empty() − 如果優先順序佇列為空,則返回 true,否則返回 false

Insert(element) − 用於將新元素插入優先順序佇列

Min() − 返回關聯鍵值最小的元素,如果優先順序佇列為空,則顯示錯誤訊息。

removeMin()− 它刪除 min() 函式引用的元素。

下面是一張表格,顯示了操作對優先佇列的影響

Start
Step 1-> Declare function to display the elements in a Priority Queue
   void display(priority_queue <int> Pq)
   declare and set priority_queue <int> que = Pq
   Loop While (!que.empty())
      call que.top()
      call que.pop()
   End
Step 2-> In main()
Create object of priority_queue <int> Pq
   Call push() to insert element in a priority queue as Pq.push(1)
   Call display(Pq)
   Call to check the size of a priority queue Pq.size()
   Call to display the top element of a priority queue Pq.top()
   Call to remove the elements of a priority queue Pq.pop()
   Call display(Pq)
Stop

示例

 現場演示

#include <iostream>
#include <queue>
using namespace std;
void display(priority_queue <int> Pq) {
   priority_queue <int> que = Pq;
   while (!que.empty()) {
      cout << '\t' << que.top();
      que.pop();
   }
   //cout << '\n';
}
int main () {
   priority_queue <int> Pq;
   Pq.push(1);
   Pq.push(3);
   Pq.push(5);
   Pq.push(7);
   Pq.push(9);
   cout << "The priority queue is : ";
   display(Pq);
   cout << "\nPrioriy queue size using size() : " << Pq.size();
   cout << "\nFirst element of priority queue using top(): " << Pq.top();
   cout << "\nremoving element using pop() : ";
   Pq.pop();
   display(Pq);
   return 0;
}

輸出

The priority queue is : 9 7 5 3 1
Prioriy queue size using size() : 5
First element of priority queue using top(): 9
removing element using pop() : 7 5 3 1

更新於:23-Dec-2019

369 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告