# Priority Queue

In computer science, a priority queue is an abstract data type 
which is like a regular queue or stack data structure, but where 
additionally each element has a "priority" associated with it. 
In a priority queue, an element with high priority is served before 
an element with low priority. If two elements have the same 
priority, they are served according to their order in the queue.

While priority queues are often implemented with heaps, they are 
conceptually distinct from heaps. A priority queue is an abstract 
concept like "a list" or "a map"; just as a list can be implemented
with a linked list or an array, a priority queue can be implemented
with a heap or a variety of other methods such as an unordered 
array.

## References

- [Wikipedia](https://en.wikipedia.org/wiki/Priority_queue)
- [YouTube](https://www.youtube.com/watch?v=wptevk0bshY&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8&index=6)