python中循环队列
时间: 2023-11-19 21:53:02 浏览: 124
Python中可以使用列表来实现循环队列。具体实现方法是,定义一个固定大小的列表,使用两个指针front和rear分别指向队头和队尾。当队列为空时,front和rear指向同一个位置。当队列满时,rear指向的位置的下一个位置就是front。在插入元素时,将元素插入到rear指向的位置,然后将rear指针向后移动一位。在删除元素时,将front指向的元素删除,然后将front指针向后移动一位。需要注意的是,当rear指针指向列表的最后一个位置时,如果还要插入元素,需要将rear指针重新指向列表的第一个位置。
下面是一个简单的Python循环队列的实现代码:
```
class CircularQueue:
def __init__(self, k: int):
self.size = k
self.queue = [None] * k
self.front = 0
self.rear = 0
def enqueue(self, value: int) -> bool:
if self.isFull():
return False
self.queue[self.rear] = value
self.rear = (self.rear + 1) % self.size
return True
def dequeue(self) -> bool:
if self.isEmpty():
return False
self.queue[self.front] = None
self.front = (self.front + 1) % self.size
return True
def Front(self) -> int:
if self.isEmpty():
return -1
return self.queue[self.front]
def Rear(self) -> int:
if self.isEmpty():
return -1
return self.queue[(self.rear - 1 + self.size) % self.size]
def isEmpty(self) -> bool:
return self.front == self.rear and self.queue[self.front] is None
def isFull(self) -> bool:
return self.front == self.rear and self.queue[self.front] is not None
```
阅读全文