Overview
A queue is First-In First-Out: enqueue adds to the back, dequeue removes from the front.
Analogy
A checkout line: first customer to arrive is first to be served.
Step-by-step
- Use collections.deque for O(1) both ends.
- Enqueue: dq.append(x); dequeue: dq.popleft().
- Front peek: dq[0]; back peek: dq[-1].
Visual
enqueue(1)→[1]; enqueue(2)→[1,2]; dequeue()→1,[2]
Common mistakes
- Using list.pop(0) — O(n) shift; use deque.popleft() instead.
- Treating a queue as a stack (wrong order of retrieval).
Practice questions
- Implement BFS using a queue.
- Build a task scheduler that processes jobs FIFO.
Time
O(1) enqueue/dequeue with deque