# Applications of Priority Queue

A Priority Queue is different from a normal queue, because instead of being a “first-in-first-out”, values come out in order by priority. It is an abstract data type that captures the idea of a container whose elements have “priorities” attached to them. An element of highest priority always appears at the front of the queue. If that element is removed, the next highest priority element advances to the front.

A priority queue is typically implemented using Heap data structure.

**Applications:**

Dijkstra’s Shortest Path Algorithm using priority queue: When the graph is stored in the form of adjacency list or matrix, priority queue can be used to extract minimum efficiently when implementing Dijkstra’s algorithm.

Prim’s algorithm: It is used to implement Prim’s Algorithm to store keys of nodes and extract minimum key node at every step.

Data compression : It is used in Huffman codes which is used to compresses data.

**Artificial Intelligence **: A* Search Algorithm : The A* search algorithm finds the shortest path between two vertices of a weighted graph, trying out the most promising routes first. The priority queue (also known as the fringe) is used to keep track of unexplored routes, the one for which a lower bound on the total path length is smallest is given highest priority.

Heap Sort : Heap sort is typically implemented using Heap which is an implementation of Priority Queue.

Operating systems: It is also use in Operating System for load balancing (load balancing on server), interrupt handling.

This article is contributed by **Sahil Rajput**. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

## Recommended Posts:

- Priority Queue in Python
- Priority Queue | Set 1 (Introduction)
- Implementation of Priority Queue in Javascript
- Double ended priority queue
- Priority Queue using Linked List
- Priority queue of pairs in C++ (Ordered by first)
- Why is Binary Heap Preferred over BST for Priority Queue?
- Priority Queue in C++ Standard Template Library (STL)
- Priority Queue using doubly linked list
- How to implement stack using priority queue or heap?
- Implementation of Non-Preemptive Shortest Job First using Priority Queue
- Applications of Queue Data Structure
- Check if a queue can be sorted into another queue using a stack
- Stack and Queue in Python using queue Module
- Program for Preemptive Priority CPU Scheduling