C++ 中的優先佇列
眾所周知,佇列資料結構是先進先出資料結構。佇列也有一些變式。這些是雙端佇列和優先佇列。
這裡我們將看到佇列的一種變式,即優先佇列。在此結構中,佇列中的每個元素都有自己的優先順序。當我們將專案插入佇列時,我們必須為其分配優先順序值。它將首先刪除優先順序最高的元素。實現優先佇列最簡單的方法之一是使用堆資料結構。
讓我們看一個用於優先佇列 STL 的 C++ 程式碼。這裡的優先順序是根據值分配的。因此,值越高將被視為優先順序最高的元素。
演算法
insert(key, priority): Begin insert key at the end of the heap heapify the array based on the priority End delete(): Begin item := root element root := last element from array heapify the array to arrange based on priority return item End
示例
#include <iostream>
#include <queue>
using namespace std;
void dequeElements(priority_queue <int> que) {
priority_queue <int> q = que;
while(!q.empty()){
cout << q.top() << " ";
q.pop();
}
cout << endl;
}
int main() {
priority_queue <int> que;
que.push(10);
que.push(20);
que.push(30);
que.push(5);
que.push(1);
cout << "Currently que is holding : ";
dequeElements(que);
cout << "Size of queue : " << que.size() << endl;
cout << "Element at top position : " << que.top() << endl;
cout << "Delete from queue : ";
que.pop();
dequeElements(que);
cout << "Delete from queue : ";
que.pop();
dequeElements(que);
}輸出
Currently que is holding : 30 20 10 5 1 Size of queue : 5 Element at top position : 30 Delete from queue : 20 10 5 1 Delete from queue : 10 5 1
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP