循环队列 python 类 演示代码
时间: 2024-09-20 19:02:15 浏览: 45
循环队列是一种特殊的线性表数据结构,它的特点是队尾接到了头部之后并不会立即删除,而是继续存储新的元素,形成一个环形结构。这种设计避免了在队列满的情况下需要额外的空间来添加新元素。
在Python中,我们可以创建一个循环队列类,例如使用内置的`collections.deque`(双端队列)来实现。这里是一个简单的例子:
```python
from collections import deque
class CircularQueue:
def __init__(self, capacity):
self.queue = deque(maxlen=capacity)
self.front = -1 # 队首位置初始化为-1表示空队列
self.rear = -1 # 队尾位置初始化为-1
def is_empty(self):
return self.front == -1 and self.rear == -1
def enqueue(self, item):
if not self.is_full():
self.rear = (self.rear + 1) % len(self.queue)
self.queue.append(item)
def dequeue(self):
if not self.is_empty():
item = self.queue[self.front]
self.front = (self.front + 1) % len(self.queue)
return item
def is_full(self):
return self.rear + 1 == self.front
# 使用演示:
cq = CircularQueue(5)
cq.enqueue(1)
cq.enqueue(2)
print(cq.dequeue()) # 输出1
print(cq.is_empty()) # 输出False
```
在这个示例中,我们实现了`enqueue`(入队)、`dequeue`(出队)以及检查队列是否为空和已满的方法。当队列达到最大容量时,新的元素会替换掉最旧的一个元素,因此表现为循环队列的特点。
阅读全文