Introduction
The Implement Queue using Stack problem involves implementing queue operations using stacks.
A Queue follows:
FIFOFirst In First OutBut Stack follows:
LIFOLast In First OutThe task is to implement:
- enqueue
- dequeue
- front
- empty
using only stacks.
This problem helps in understanding:
- stack operations
- queue behavior
- data structure simulation
- reversing order
Example
Operations:enqueue(1)
enqueue(2)
front()
Output: 1
dequeue() Output:
1
front() Output: 2
Constraints
1 <= operations <= 10^5Approach 1 : Brute Force using Two Stacks
Explanation
The simplest way is:
- Push elements into stack1
- During dequeue:
- move all elements
from stack1 to stack2
- move all elements
- Pop front element
- Move elements back
This correctly simulates queue behavior.
Steps
- Push into stack1.
- During dequeue:
- transfer elements
- Remove front element.
- Transfer elements back.
- Return queue values.
Dry Run
Operations:enqueue(1)enqueue(2)
enqueue(3)
stack1:
1 2 3 dequeue()
Move elements:
stack2: 3 2 1
Pop: 1
Move back: stack1:
2 3
Final Queue: 2 3
Brute Force Code
Complexity Analysis
Enqueue Time Complexity: O(1)Dequeue Time Complexity: O(n)
Explanation:
Elements are transferred between stacks.
Space Complexity: O(n)
Explanation:
Two stacks are used.
Approach 2 : Optimized Two Stack Technique
Explanation
The optimized solution uses:
Lazy Transfer TechniqueIdea:
- stack1 handles enqueue
- stack2 handles dequeue
Transfer happens only when:
- stack2 becomes empty
This reduces unnecessary transfers.
Steps
- Push elements into stack1.
- During dequeue:
- if stack2 empty
- transfer elements once
- Pop from stack2.
- Return front element.
Dry Run
Operations:enqueue(1)enqueue(2)
enqueue(3)
stack1: 1 2 3 dequeue()
Transfer once:
stack2: 3 2 1
Pop:
1
Next dequeue():
Pop directly from stack2:
2
Final Queue: 3
Optimized Code
Complexity Analysis
Enqueue Time Complexity: O(1)Dequeue Time Complexity: Amortized O(1)
Explanation:
Each element is transferred at most once.
Space Complexity: O(n) Explanation:
Two stacks are used.
Edge Cases