classMyCircularQueue:def__init__(self, k:int):"""
Initialize your data structure here. Set the size of the queue to be k.
"""
self.len= k
self.values =[-1]* self.len
self.front =0
self.num =0defenQueue(self, value:int)->bool:"""
Insert an element into the circular queue. Return true if the operation is successful.
"""if self.num == self.len:returnFalse
self.values[(self.front + self.num)% self.len]= value
self.num +=1returnTruedefdeQueue(self)->bool:"""
Delete an element from the circular queue. Return true if the operation is successful.
"""if self.num ==0:returnFalse
self.values[self.front]=-1
self.front =(self.front +1)% self.len
self.num -=1returnTruedefFront(self)->int:"""
Get the front item from the queue.
"""return self.values[self.front]defRear(self)->int:"""
Get the last item from the queue.
"""return self.values[(self.front + self.num -1)% self.len]defisEmpty(self)->bool:"""
Checks whether the circular queue is empty or not.
"""return self.num ==0defisFull(self)->bool:"""
Checks whether the circular queue is full or not.
"""return self.num == self.len