# 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 **queue** is a particular kind of abstract data
type or collection in which the entities in the collection are
kept in order and the principle (or only) operations on the
collection are the addition of entities to the rear terminal
position, known as enqueue, and removal of entities from the
front terminal position, known as dequeue. This makes the queue
a First-In-First-Out (FIFO) data structure. In a FIFO data
structure, the first element added to the queue will be the
first one to be removed. This is equivalent to the requirement
that once a new element is added, all elements that were added
before have to be removed before the new element can be removed.
Often a peek or front operation is also entered, returning the
value of the front element without dequeuing it. A queue is an
example of a linear data structure, or more abstractly a
sequential collection.

Representation of a FIFO (first in, first out) queue

![Queue](./images/queue.jpeg)

*Made with [okso.app](https://okso.app)*

## References

- [Wikipedia](https://en.wikipedia.org/wiki/Queue_(abstract_data_type))
- [YouTube](https://www.youtube.com/watch?v=wjI1WNcIntg&list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8&index=3&)
