DSA — Linear DS
Queue & Deque
Queue: First In First Out (FIFO). Deque (double-ended): O(1) insert/delete at both ends.
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
→