What is the printed state of the circular queue after the following operations?
Initialize queue with size 5.
Enqueue 10, 20, 30.
Dequeue one element.
Enqueue 40, 50, 60.
Print queue elements from front to rear.
class CircularQueue { private int[] queue; private int front, rear, size, count; public CircularQueue(int size) { this.size = size; queue = new int[size]; front = 0; rear = -1; count = 0; } public void Enqueue(int item) { if (count == size) return; // full rear = (rear + 1) % size; queue[rear] = item; count++; } public int Dequeue() { if (count == 0) return -1; // empty int item = queue[front]; front = (front + 1) % size; count--; return item; } public string PrintQueue() { if (count == 0) return "empty"; string result = ""; for (int i = 0; i < count; i++) { int index = (front + i) % size; result += queue[index] + " -> "; } return result + "null"; } } var cq = new CircularQueue(5); cq.Enqueue(10); cq.Enqueue(20); cq.Enqueue(30); cq.Dequeue(); cq.Enqueue(40); cq.Enqueue(50); cq.Enqueue(60); Console.WriteLine(cq.PrintQueue());
Remember that dequeue removes the front element and enqueue adds at rear in a circular manner.
After enqueueing 10, 20, 30, the queue is: 10 -> 20 -> 30 -> null.
Dequeue removes 10.
Enqueue 40, 50, 60 fills the queue circularly.
Final queue: 20 -> 30 -> 40 -> 50 -> 60 -> null.
Which condition correctly checks if the circular queue is full?
Full means number of elements equals the queue size.
In a circular queue, the queue is full when the count of elements equals the size of the queue.
What error will occur when running the following Dequeue method if the queue is empty?
public int Dequeue() { int item = queue[front]; front = (front + 1) % size; count--; return item; }
Check what happens if Dequeue is called when count is zero.
No runtime error occurs because queue[front] (front=0 initially) accesses a valid array index and returns the default value (0). However, it corrupts the queue state by advancing front and setting count to -1.
Which option correctly implements the enqueue operation in a circular queue?
Remember to use parentheses to ensure correct modulo operation.
Option C correctly increments rear circularly using modulo. Option C lacks parentheses causing wrong precedence. Option C uses division instead of modulo. Option C incorrectly uses count as index.
Given a circular queue of size 4, what is the queue state after these operations?
Enqueue 1, 2, 3.
Dequeue.
Enqueue 4.
Dequeue.
Enqueue 5.
Print queue elements from front to rear.
class CircularQueue { private int[] queue; private int front, rear, size, count; public CircularQueue(int size) { this.size = size; queue = new int[size]; front = 0; rear = -1; count = 0; } public void Enqueue(int item) { if (count == size) return; rear = (rear + 1) % size; queue[rear] = item; count++; } public int Dequeue() { if (count == 0) return -1; int item = queue[front]; front = (front + 1) % size; count--; return item; } public string PrintQueue() { if (count == 0) return "empty"; string result = ""; for (int i = 0; i < count; i++) { int index = (front + i) % size; result += queue[index] + " -> "; } return result + "null"; } } var cq = new CircularQueue(4); cq.Enqueue(1); cq.Enqueue(2); cq.Enqueue(3); cq.Dequeue(); cq.Enqueue(4); cq.Dequeue(); cq.Enqueue(5); Console.WriteLine(cq.PrintQueue());
Track front and rear carefully after each operation.
After enqueue 1,2,3: queue is 1->2->3.
Dequeue removes 1.
Enqueue 4: queue is 2->3->4.
Dequeue removes 2.
Enqueue 5: queue is 3->4->5.
Printed as 3 -> 4 -> 5 -> null.
