设计整数循环队列的基本运算程序python
时间: 2024-10-25 08:11:40 浏览: 35
设计一个整数循环队列的基本操作,如入队(enqueue)、出队(dequeue)和查看队首元素(front),以及判断队列是否为空(is_empty),在Python中可以这样实现:
```python
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = -1
self.rear = -1
# 入队操作
def enqueue(self, value):
if self.is_full():
print("Queue is full")
return
if self.front == -1:
self.front = 0
else:
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = value
# 出队操作
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
popped_value = self.queue[self.front]
if self.front == self.rear:
self.front = -1
self.rear = -1
else:
self.front = (self.front + 1) % self.capacity
return popped_value
# 查看队首元素
def front(self):
if self.is_empty():
return "No element in queue"
return self.queue[(self.front + 1) % self.capacity]
# 判断队列是否为空
def is_empty(self):
return self.front == -1 and self.rear == -1
# 使用示例
cq = CircularQueue(5)
cq.enqueue(1)
cq.enqueue(2)
cq.enqueue(3)
print(cq.front()) # 输出: 1
print(cq.dequeue()) # 输出: 1
print(cq.is_empty()) # 输出: False
```
在这个实现中,我们使用两个指针`front`和`rear`来表示队列的头和尾,当队列满时,新的元素会覆盖头部的元素,形成循环队列的特点。注意,这里是假设队列的最大容量是固定的。
阅读全文