class CircularQueue: def __init__(self, size): self.size = size self.head = 0 self.tail = 0 self.buffer = [None] * size self.length = 0 def enqueue(self, value): self.length += 1 self.buffer[self.tail] = value self.tail += 1 if self.tail >= self.size: self.tail = 0 def dequeue(self): self.length -= 1 value = self.buffer[self.head] self.head += 1 if self.head >= self.size: self.head = 0 return value