Explain queue from stacks.
Skip to solutionKEEP THE
mediumDSA
How do you implement a queue using two stacks?
1.1k views
01
Understand the problem
stackqueue
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
Keep an in stack and an out stack. Push to in. To dequeue/peek, if out is empty, pop everything from in into out (reversing order), then pop out. Each element moves at most twice — amortized O(1).
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Queue via in/out stacks
Run Playgroundclass MyQueue:
def __init__(self):
self.in_stack = []
self.out_stack = []
def enqueue(self, x):
self.in_stack.append(x)
def dequeue(self):
self._shift()
return self.out_stack.pop()
def peek(self):
self._shift()
return self.out_stack[-1]
def _shift(self):
if not self.out_stack:
while self.in_stack:
self.out_stack.append(self.in_stack.pop())
# --- demo ---
q = MyQueue()
q.enqueue(1); q.enqueue(2); q.enqueue(3)
print(q.dequeue()) # 1
print(q.dequeue()) # 2
q.enqueue(4)
print(q.dequeue()) # 305
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 36 of 127 decoded in the Data Structures & Algorithms track. One more won't hurt.