Skip to content
DeepForgeby svx
All problems
MediumData Structuresds-006

Circular Queue Simulation

Problem

Simulate a fixed-size circular queue (ring buffer) with the given capacity.

operations contains "enqueue", "dequeue", "front", "rear", "is_empty", or "is_full". enqueue returns False when full and True otherwise, dequeue returns the removed value (or None when empty), front and rear return the end values or None, and the last two return booleans.

Return the list of recorded results.

Hint

Track head and count; the tail position is (head + count - 1) % capacity.

Test cases

case 1
in: [3,["enqueue","enqueue","enqueue","enqueue","front","rear","dequeue","enqueue","front","rear"],[1,2,3,4,0,0,0,5,0,0]]
expected: [true,true,true,false,1,3,1,true,2,5]
case 2
in: [1,["enqueue","dequeue","is_empty","enqueue","is_full"],[1,0,0,2,0]]
expected: [true,1,true,true,true]
case 3
in: [2,["dequeue","front","rear","is_empty"],[0,0,0,0]]
expected: [null,null,null,true]
case 4
in: [2,["enqueue","dequeue","enqueue","rear"],[9,0,8,0]]
expected: [true,9,true,8]
Starter codePython
def circular_queue(capacity, operations, values):
    # Your code here
    pass

4 test cases · run your code against them in the editor