下面是使用Python语言生成环形队列的代码示例:
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = -1
self.rear = -1
def enqueue(self, item):
if ((self.rear + 1) % self.capacity == self.front):
print("Queue is full\n")
elif (self.front == -1):
self.front = 0
self.rear = 0
self.queue[self.rear] = item
else:
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = item
def dequeue(self):
if (self.front == -1):
print("Queue is empty\n")
elif (self.front == self.rear):
temp = self.queue[self.front]
self.front = -1
self.rear = -1
return temp
else:
temp = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
return temp
在这个代码中,我们使用了一个类 CircularQueue 来表示环形队列。构造函数 init 接受一个 capacity 参数,表示队列的容量。在构造函数中,我们创建一个长度为 capacity 的列表,用来存储队列中的元素。我们还定义了两个变量 front 和 rear,分别表示队列的前端和后端。当队列为空时,这两个变量都被初始化为 -1。
在 enqueue 方法中,我们首先检查队列是否已满。如果是,我们输出一个错误消息。否则,我们检查队列是否为空。如果是,我们将 front 和 rear 都设置为 0,并将元素插入到队列中。否则,我们将 rear 向前移动一位,并将元素插入到队列中。
在 dequeue 方法中,我们首先检查队列是否为空。如果是,我们输出一个错误消息。否则,我们检查队列中是否只有一个元素。如果是,我们将 front 和 rear 都设置为 -1,并返回队列中唯一的元素。否则,我们返回队列的第一个元素,并将 front 向前移动一位。