DSA — Linear DS

Queue & Deque

Queue: First In First Out (FIFO). Deque (double-ended): O(1) insert/delete at both ends.

— min read
O(1)Enqueue
O(1)Dequeue
FIFOOrder
DequeBoth Ends
BFS Uses
// QUEUE OPERATIONS
Use Enqueue/Dequeue to operate
How It Works
Python Code
Complexity
Quiz
Practice
01
Enqueue
Add to the REAR of queue — O(1).
queue.append(x)
02
Dequeue
Remove from FRONT — O(1) with deque.
queue.popleft()
03
Deque
Double-ended: insert/remove from both ends in O(1).
from collections import deque
04
BFS
Classic use: level-by-level graph traversal.
Python — Queue & Deque
from collections import deque

q = deque()
q.append(10)       # enqueue rear  — O(1)
q.append(20)
q.append(30)
front = q[0]       # peek front    — O(1)
val = q.popleft()  # dequeue front — O(1)

# Deque (double-ended)
dq = deque()
dq.appendleft(5)   # insert at front
dq.append(10)      # insert at rear
dq.popleft()       # remove front
dq.pop()           # remove rear
O(1)
Enqueue
Append to rear
O(1)
Dequeue
Pop from front (use deque!)
O(n)
List pop(0)
Do NOT use list.pop(0) — it is O(n)
BFS
Key Use
Process nodes level by level
Why use collections.deque instead of list for a queue in Python?
Progress0 / 4 solved
4 problems · 2 PBC · 2 Startup
#064 Implement Queue using Stacks Amazon PBC
#067 Sliding Window Maximum Amazon PBC
#068 Implement Stack using Queues Cure.fit STARTUP
#070 LRU Cache Design Cogoport STARTUP