Recall & Review
beginner
What is a circular queue?
A circular queue is a type of queue where the last position is connected back to the first position to make a circle. It helps use the array space efficiently by reusing empty spots after dequeue operations.
Click to reveal answer
beginner
How do you check if a circular queue is full?
The queue is full if the next position of rear (calculated as (rear + 1) % size) is equal to front. This means no space is left to insert new elements.
Click to reveal answer
beginner
Explain the enqueue operation in a circular queue.
To enqueue, check if the queue is full. If not, move rear to the next position using (rear + 1) % size and insert the new element there. If the queue was empty, set front to 0.
Click to reveal answer
beginner
Explain the dequeue operation in a circular queue.
To dequeue, check if the queue is empty. If not, remove the element at front. If front equals rear after removal, reset both to -1 (empty queue). Otherwise, move front to (front + 1) % size.
Click to reveal answer
beginner
Why is a circular queue better than a simple queue using arrays?
A simple queue wastes space when elements are dequeued because front moves forward and those spots can't be reused. A circular queue reuses those spots by wrapping around, making better use of the array space.
Click to reveal answer
What does the expression (rear + 1) % size == front indicate in a circular queue?
✗ Incorrect
When the next position of rear is front, it means no space is left to insert new elements, so the queue is full.
What should be the initial values of front and rear in an empty circular queue?
✗ Incorrect
Both front and rear are set to -1 to indicate the queue is empty.
After dequeuing the last element, what happens to front and rear?
✗ Incorrect
When the last element is removed, both front and rear reset to -1 to mark the queue as empty.
Which operation moves rear to the next position in a circular queue?
✗ Incorrect
Using modulo with size wraps rear around to the start if it reaches the end of the array.
Why is modulo (%) used in circular queue operations?
✗ Incorrect
Modulo helps wrap the index back to 0 when it reaches the array's end, creating a circular effect.
Describe how enqueue and dequeue operations work in a circular queue implemented with an array.
Think about how the front and rear move and how the array wraps around.
You got /4 concepts.
Explain why a circular queue is more space-efficient than a simple linear queue using an array.
Consider what happens when you remove elements from a simple queue.
You got /4 concepts.