0
0
DSA Pythonprogramming~20 mins

Queue Implementation Using Linked List in DSA Python - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Queue Mastery Badge
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 performing these operations?

Operations:
1. Enqueue 10
2. Enqueue 20
3. Enqueue 30
4. Dequeue
5. Enqueue 40
DSA Python
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class Queue:
    def __init__(self):
        self.front = None
        self.rear = None

    def enqueue(self, data):
        new_node = Node(data)
        if self.rear is None:
            self.front = self.rear = new_node
            return
        self.rear.next = new_node
        self.rear = new_node

    def dequeue(self):
        if self.front is None:
            return None
        temp = self.front
        self.front = temp.next
        if self.front is None:
            self.rear = None
        return temp.data

    def print_queue(self):
        current = self.front
        result = []
        while current:
            result.append(current.data)
            current = current.next
        print(" -> ".join(map(str, result)) + " -> null")

q = Queue()
q.enqueue(10)
q.enqueue(20)
q.enqueue(30)
q.dequeue()
q.enqueue(40)
q.print_queue()
A10 -> 20 -> 30 -> 40 -> null
B20 -> 30 -> 40 -> null
C30 -> 40 -> null
D40 -> null
Attempts:
2 left
💡 Hint
Remember that dequeue removes from the front of the queue.
🧠 Conceptual
intermediate
1:30remaining
Queue Front and Rear After Operations
After performing these operations on an empty queue:
enqueue(5), enqueue(15), dequeue(), enqueue(25), dequeue()
What are the values at the front and rear of the queue?
AFront: 5, Rear: 25
BFront: 15, Rear: 25
CFront: 25, Rear: 15
DFront: 25, Rear: 25
Attempts:
2 left
💡 Hint
Track each operation carefully and update front and rear pointers.
🔧 Debug
advanced
2:00remaining
Identify the Bug in Dequeue Method
What error will this code raise when dequeue is called on an empty queue?
DSA Python
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class Queue:
    def __init__(self):
        self.front = None
        self.rear = None

    def dequeue(self):
        temp = self.front
        self.front = temp.next
        if self.front is None:
            self.rear = None
        return temp.data

q = Queue()
q.dequeue()
AAttributeError: 'NoneType' object has no attribute 'next'
BIndexError: dequeue from empty queue
CTypeError: unsupported operand type(s)
DNo error, returns null
Attempts:
2 left
💡 Hint
Check what happens when front is null and you try to access temp.next.
📝 Syntax
advanced
1:30remaining
Syntax Error in Enqueue Method
Which option contains the correct enqueue method for a linked list queue?
A
def enqueue(self, data):
    new_node = Node(data)
    if self.rear is None:
        self.front = self.rear = new_node
    else:
        self.rear.next = new_node
        self.rear = new_node
B
def enqueue(self, data):
    new_node = Node(data)
    if self.rear == None
        self.front = self.rear = new_node
    else:
        self.rear.next = new_node
        self.rear = new_node
C
def enqueue(self, data):
    new_node = Node(data)
    if self.rear is None:
        self.front = new_node
        self.rear = new_node
    else
        self.rear.next = new_node
        self.rear = new_node
D
def enqueue(self, data):
    new_node = Node(data)
    if self.rear is None:
        self.front = self.rear = new_node
    else:
        self.rear.next = new_node
        self.rear = new_node
    return
Attempts:
2 left
💡 Hint
Look for missing colons and proper if-else structure.
🚀 Application
expert
2:30remaining
Queue Size After Mixed Operations
Given the following sequence of operations on an empty queue, what is the size of the queue at the end?

enqueue(1), enqueue(2), dequeue(), enqueue(3), enqueue(4), dequeue(), dequeue(), enqueue(5)
DSA Python
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class Queue:
    def __init__(self):
        self.front = None
        self.rear = None
        self.size = 0

    def enqueue(self, data):
        new_node = Node(data)
        if self.rear is None:
            self.front = self.rear = new_node
        else:
            self.rear.next = new_node
            self.rear = new_node
        self.size += 1

    def dequeue(self):
        if self.front is None:
            return None
        temp = self.front
        self.front = temp.next
        if self.front is None:
            self.rear = None
        self.size -= 1
        return temp.data

q = Queue()
q.enqueue(1)
q.enqueue(2)
q.dequeue()
q.enqueue(3)
q.enqueue(4)
q.dequeue()
q.dequeue()
q.enqueue(5)
print(q.size)
A1
B3
C2
D4
Attempts:
2 left
💡 Hint
Count each enqueue as +1 and each dequeue as -1 carefully.