下面是一个简单的环形数组(也称为循环数组或循环队列)的 Python 实现。环
形数组通常用于实现队列或循环缓冲区,其中数组的末尾和开头是相连的。
代码实现
python
class CircularArray:
def __init__(self, k):
self.k = k
self.queue = [None] * k
self.head = self.tail = -1
# 插入元素到尾部
def enqueue(self, data):
if ((self.tail + 1) % self.k == self.head): # 队列满
print("Circular Queue is full")
elif (self.head == -1): # 首次插入
self.head = 0
self.tail = 0
self.queue[self.tail] = data
else:
self.tail = (self.tail + 1) % self.k # 更新尾部位置
self.queue[self.tail] = data # 插入数据
# 从头部删除元素
def dequeue(self):
if (self.head == -1): # 队列为空
print("Circular Queue is empty")
elif (self.head == self.tail): # 队列中只有一个元素
temp = self.queue[self.head]
self.head = -1
self.tail = -1
return temp
else:
temp = self.queue[self.head]
self.head = (self.head + 1) % self.k # 更新头部位置
return temp