0
0
DSA Pythonprogramming~20 mins

Queue Using Two Stacks in DSA Python - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Queue Two Stacks Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of enqueue and dequeue operations
What is the printed state of the queue after these operations using two stacks?
DSA Python
class QueueUsingStacks:
    def __init__(self):
        self.stack_in = []
        self.stack_out = []

    def enqueue(self, x):
        self.stack_in.append(x)

    def dequeue(self):
        if not self.stack_out:
            while self.stack_in:
                self.stack_out.append(self.stack_in.pop())
        if self.stack_out:
            return self.stack_out.pop()
        return None

q = QueueUsingStacks()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.dequeue()
q.enqueue(4)
result = []
while True:
    val = q.dequeue()
    if val is None:
        break
    result.append(val)
print(result)
A[1, 3, 4]
B[1, 2, 3, 4]
C[3, 4]
D[2, 3, 4]
Attempts:
2 left
💡 Hint
Remember that dequeue moves elements from stack_in to stack_out only when stack_out is empty.
Predict Output
intermediate
2:00remaining
Resulting queue after multiple dequeues
What is the output after these operations on a queue implemented with two stacks?
DSA Python
class QueueUsingStacks:
    def __init__(self):
        self.stack_in = []
        self.stack_out = []

    def enqueue(self, x):
        self.stack_in.append(x)

    def dequeue(self):
        if not self.stack_out:
            while self.stack_in:
                self.stack_out.append(self.stack_in.pop())
        if self.stack_out:
            return self.stack_out.pop()
        return None

q = QueueUsingStacks()
q.enqueue(10)
q.enqueue(20)
q.enqueue(30)
print(q.dequeue())
print(q.dequeue())
q.enqueue(40)
print(q.dequeue())
print(q.dequeue())
A
10
20
40
None
B
10
20
30
40
C
10
20
40
30
D
None
None
None
None
Attempts:
2 left
💡 Hint
Dequeue empties stack_out before moving elements from stack_in.
🔧 Debug
advanced
2:00remaining
Identify the error in dequeue method
What error will this code raise when calling dequeue on an empty queue?
DSA Python
class QueueUsingStacks:
    def __init__(self):
        self.stack_in = []
        self.stack_out = []

    def enqueue(self, x):
        self.stack_in.append(x)

    def dequeue(self):
        if not self.stack_out:
            while self.stack_in:
                self.stack_out.append(self.stack_in.pop())
        return self.stack_out.pop()

q = QueueUsingStacks()
print(q.dequeue())
AIndexError
BTypeError
CNone
DSyntaxError
Attempts:
2 left
💡 Hint
What happens if you pop from an empty list?
🧠 Conceptual
advanced
2:00remaining
Time complexity of dequeue operation
What is the average time complexity of the dequeue operation in a queue implemented using two stacks?
AO(n) for every dequeue
BO(log n)
CO(1) amortized time
DO(n^2)
Attempts:
2 left
💡 Hint
Consider how often elements move between stacks.
Predict Output
expert
3:00remaining
Final state of stacks after operations
After executing the following code, what is the content of stack_in and stack_out?
DSA Python
class QueueUsingStacks:
    def __init__(self):
        self.stack_in = []
        self.stack_out = []

    def enqueue(self, x):
        self.stack_in.append(x)

    def dequeue(self):
        if not self.stack_out:
            while self.stack_in:
                self.stack_out.append(self.stack_in.pop())
        if self.stack_out:
            return self.stack_out.pop()
        return None

q = QueueUsingStacks()
q.enqueue(5)
q.enqueue(10)
q.enqueue(15)
q.dequeue()
q.enqueue(20)
q.dequeue()
Astack_in: [20], stack_out: [15]
Bstack_in: [], stack_out: [10, 15]
Cstack_in: [], stack_out: [15]
Dstack_in: [20], stack_out: [5]
Attempts:
2 left
💡 Hint
Trace each enqueue and dequeue step carefully.