Design a circular queue that supports enqueue, dequeue, front, rear, isEmpty, and isFull operations. Pattern focus: Circular Queue (Ring Buffer). Track head, tail, and size so that operations remain constant time.
k = capacity, operations = list of queue commands with optional values
results of the operations
Example 1:
Input:
k = 3 operations = [["MyCircularQueue"],["enQueue","1"],["enQueue","2"],["enQueue","3"],["enQueue","4"],["Rear"],["isFull"],["deQueue"],["enQueue","4"],["Rear"]]
Output:
["null","true","true","true","false","3","true","true","true","4"]
Explanation:
CircularQueue of size 3: enqueue 1,2,3 (full), enqueue 4 fails, Rear=3, isFull=true, dequeue, enqueue 4, Rear=4
Example 2:
Input:
k = 2 operations = [["MyCircularQueue"],["enQueue","1"],["enQueue","2"],["deQueue"],["enQueue","3"],["Front"],["Rear"]]
Output:
["null","true","true","true","true","2","3"]
Explanation:
CircularQueue of size 2