# Priority Queue

_Read this in other languages:_
[_简体中文_](README.zh-CN.md),
[_Русский_](README.ru-RU.md),
[_日本語_](README.ja-JP.md),
[_Français_](README.fr-FR.md),
[_Português_](README.pt-BR.md),
[_한국어_](README.ko-KR.md)

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)
