Queues

Illustration of a queue: items in a line showing enqueue at the rear and dequeue at the front
Illustration: queues follow First In, First Out (FIFO); items enter at the rear and exit at the front.

Queues follow First In, First Out (FIFO). Enqueue adds to the end, dequeue removes from the front.

Example: Queues across languages

javascript
class Queue {
  constructor() { this.items = []; this.head = 0; this.tail = 0; }
  enqueue(x) { this.items[this.tail++] = x; }
  dequeue() { return this.tail > this.head ? this.items[this.head++] : null; }
  isEmpty() { return this.tail === this.head; }
}

python
from collections import deque

class Queue:
    def __init__(self):
        self.items = deque()

    def enqueue(self, x):
        self.items.append(x)

    def dequeue(self):
        return self.items.popleft() if self.items else None

    def is_empty(self):
        return len(self.items) == 0

java
import java.util.ArrayDeque;

public class QueueDemo {
  private ArrayDeque items = new ArrayDeque<>();

  public void enqueue(int x) { items.offer(x); }
  public Integer dequeue() { return items.poll(); }
  public boolean isEmpty() { return items.isEmpty(); }
}

Quick quiz

A queue removes the oldest enqueued item first. True (A) or False (B)?

Back to top