Given Nodes with their priority, implement a priority queue using doubly linked list.
Prerequisite : Priority Queue
- push(): This function is used to insert a new data into the queue.
- pop(): This function removes the element with the lowest priority value form the queue.
- peek() / top(): This function is used to get the lowest priority element in the queue without removing it from the queue.
1. Create a doubly linked list having fields info(hold the information of the Node), priority(hold the priority of the Node), prev(point to previous Node), next(point to next Node).
2. Insert the element and priority in the Node.
3. Arrange the Nodes in the increasing order of priority.
Below is the implementation of above steps :
Related Article :
Priority Queue using Singly Linked List
Time Complexities and Comparison with Binary Heap:
peek() push() pop() ----------------------------------------- Linked List | O(1) O(n) O(1) | Binary Heap | O(1) O(Log n) O(Log n)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.