How to implement Priority Queue in C++
In this C++ tutorial, we are going to discuss priority queue and its implementation in C++.
What is Priority Queue ?
Priority Queue is a container in which every element has a priority and all elements are assigned in an order such that element which has the highest priority is operated first.
Declaration :-
priority_queue< data_type > priority_queue_name ;
Let’s understand priority queue by taking an example :-
Suppose, we have elements 1, 2 , 7, 4 . Now, when these elements are inserted in priority_queue.
Priority_Queue :- 7, 4, 2, 1
priority_queue.top() :- 7
priority_queue.push(5) // Now, 5 will automatically adjust in priority_queue according to its priority
Priority_Queue :- 7, 5, 4, 2, 1
priority_queue.pop():- 7 // element with higher order priority will pop first
Priority_Queue :- 5, 4, 2, 1
priority_queue.size():- 4
Priority_queue.empty():- 0
Some of the operation of priority_queue are :-
1.) priority_queue :: empty() :- empty() function check whether a priority_queue is empty or not. Return 1 if empty else 0.
Ex:-
if(!priority_queue.empty())
{
cout<<priority_queue.top()<<endl;
priority_queue.pop();
}
2.) priority_queue :: size() :- returns the size of priority_queue or number of elements in priority_queue container.
Ex:-
cout<<priority_queue.size()<<endl;
3.) priority_queue :: top() :- returns the reference of top most element of queue.
Ex:-
cout<<priority_queue.top()<<endl;
4.) priority_queue :: push() :- add an element in priority_queue.
Ex:-
priority_queue.push(1);
adds element 1 to the priority_queue.
5.) priority_queue :: pop() :- removes the first element from the priority_queue.
Ex:-
priority_queue.pop();
C++ Code implementation of priority_queue
#include<bits/stdc++.h> using namespace std; int main() { priority_queue<int>pq; pq.push(4); // inserting element 4 in priority_queue pq.push(7); // inserting element 7 in priority_queue pq.push(2); // inserting element 2 in priority_queue cout<<"Top element of priority_queue is :- " <<pq.top()<<endl; // printing the top element of priority_queue cout<<"Priority_queue is:- "; while(!pq.empty()) { cout<<pq.top()<<" "; pq.pop(); } }
Also, learn:
Nice and best explained.