利用循环数组储存队列代码
时间: 2024-09-23 20:09:29 浏览: 34
javascript中利用数组实现的循环队列代码
循环数组(Circular Array)常用于实现队列(Queue),因为它支持高效的元素添加(Enqueue)和删除(Dequeue)操作。下面是一个简单的使用Python实现循环数组队列的例子:
```python
class CircularArrayQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = -1
self.rear = -1
# 添加元素到队列尾部
def enqueue(self, data):
if (self.rear + 1) % self.capacity == self.front: # 队满
print("Queue is full.")
return
if self.front == -1: # 初始化
self.front = self.rear = 0
else:
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = data
# 从队列头部移除并返回元素
def dequeue(self):
if self.front == -1: # 队空
print("Queue is empty.")
return None
elif self.front == self.rear: # 队列只有一个元素
data = self.queue[self.front]
self.front = self.rear = -1
else:
data = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
return data
# 使用示例
cq = CircularArrayQueue(5)
cq.enqueue(1)
cq.enqueue(2)
cq.enqueue(3)
print(cq.dequeue()) # 输出: 1
print(cq.dequeue()) # 输出: 2
```
在这个例子中,`enqueue()`会将元素添加到数组的末尾,并更新`rear`指针,而`dequeue()`则从数组开头移除元素并更新`front`指针。当队列达到容量时,`rear`会重新指向开始位置,实现了循环的效果。
阅读全文