Queue
Definition
FIFO data structure with two operations enqueue (adds element at back) and dequeue (pops element at the head). There exists:
- simple queue
- circular queue
- priority queue: add element with a corresponding priority, dequeuing pops the element having the highest priority.
- double ended queue: enqueuing and dequeuing possible from both ends.
Implementations
- simple and circular queues: dynamic array or linked list.
- priority queue: heap.
- double ended queue: vector of pointers to chunks of vectors (C++ STL implementation)

Complexity
Queue
| Operation | Complexity |
|---|---|
| Enqueue | |
| Dequeue |
Append and deletion complexities of dynamic array.
Priority queue
| Operation | Complexity |
|---|---|
| Enqueue | |
| Dequeue |
Append and deletion complexities of heap.
Deque
| Operation | Complexity |
|---|---|
| Access | |
| Search | |
| Enqueue | amortized |
| Dequeue | amortized |
| Insert | |
| Remove |
TODO