Queue
FIFO data structure, first in first out.
Operations
- Enqueue (push): Add an element to the queue.

- Dequeue (pop): Remove an element from head the queue.

- Peek: See the element at the head of the queue.

Implementation
It can be implemented with an array, but since its FIFO, you need to maintain two pointers, one at the start and one at the end. When we insert, we set the value at the end pointer and increase the value by one. When we remove, we increase the value of start by one, if you were to peek you just return the value at start without modifying the pointer.