循环队列Python
时间: 2024-04-12 10:25:52 浏览: 106
循环队列
5星 · 资源好评率100%
循环队列是一种特殊的队列数据结构,它可以在固定大小的数组中实现队列的功能。在循环队列中,当队列满时,新元素可以从数组的开头插入,而不是从数组的末尾插入。这样可以充分利用数组空间,避免了队列满时的数据搬移操作。
在Python中,可以使用列表来实现循环队列。下面是一个简单的循环队列的实现示例:
```python
class CircularQueue:
def __init__(self, k):
self.k = k
self.queue = [None] * k
self.head = self.tail = -1
def enqueue(self, value):
if self.is_full():
return False
if self.is_empty():
self.head = self.tail = 0
else:
self.tail = (self.tail + 1) % self.k
self.queue[self.tail] = value
return True
def dequeue(self):
if self.is_empty():
return False
if self.head == self.tail:
self.head = self.tail = -1
else:
self.head = (self.head + 1) % self.k
return True
def front(self):
if self.is_empty():
return None
return self.queue[self.head]
def rear(self):
if self.is_empty():
return None
return self.queue[self.tail]
def is_empty(self):
return self.head == -1
def is_full(self):
return (self.tail + 1) % self.k == self.head
```
上述代码中,`CircularQueue`类实现了循环队列的基本操作,包括入队、出队、获取队首元素、获取队尾元素、判断队列是否为空以及判断队列是否已满。
阅读全文