建立一个循环队列,实现进队,出队
时间: 2023-05-28 21:05:40 浏览: 137
循环队列是一种特殊的队列,它可以利用数组实现,具有先进先出的特点,同时可以循环利用数组空间,避免浪费。下面是一个简单的循环队列的实现,包括进队和出队操作:
```python
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.data = [None] * capacity
self.head = 0
self.tail = 0
self.size = 0
def enqueue(self, value):
if self.size == self.capacity:
return False
self.data[self.tail] = value
self.tail = (self.tail + 1) % self.capacity
self.size += 1
return True
def dequeue(self):
if self.size == 0:
return None
value = self.data[self.head]
self.head = (self.head + 1) % self.capacity
self.size -= 1
return value
```
在初始化时,需要指定队列的容量。进队操作时,如果队列已满,则返回 False;否则将元素放到队列尾部,并将尾指针后移一位。出队操作时,如果队列为空,则返回 None;否则返回队列头部的元素,并将头指针后移一位。
需要注意的是,在循环队列中,头指针和尾指针可能会循环回到数组的起始位置,因此需要使用取模运算来保证它们的值始终在 [0, capacity) 的范围内。