编写一个能实现顺序循环队列的入队、出队、取队首元素和显示队列元素的小程序
时间: 2024-10-19 12:13:19 浏览: 31
顺序循环队列是一种线性数据结构,它通过数组实现,并利用两个指针 `front` 和 `rear` 来跟踪队头和队尾的位置。当队列满时,新的元素会从队尾开始插入,而不会溢出;同样,当队列为空时,尝试出队的操作会失败。
下面是一个简单的 Python 示例,展示如何实现顺序循环队列:
```python
class CircularQueue:
def __init__(self, size):
self.queue = [None] * size
self.front = -1
self.rear = -1
# 入队操作
def enqueue(self, data):
if (self.rear + 1) % len(self.queue) == self.front:
print("Queue is full")
else:
if self.front == -1:
self.front = 0
self.rear = (self.rear + 1) % len(self.queue)
self.queue[self.rear] = data
# 出队操作
def dequeue(self):
if self.front == -1 or self.front == self.rear:
print("Queue is empty")
else:
removed_data = self.queue[self.front]
self.queue[self.front] = None
if self.front == self.rear:
self.front = self.rear = -1
else:
self.front = (self.front + 1) % len(self.queue)
return removed_data
# 取队首元素
def peek(self):
if self.front == -1:
print("Queue is empty")
else:
return self.queue[self.front]
# 显示队列元素
def display(self):
if self.front == -1:
print("Queue is empty")
else:
index = self.front
while True:
print(self.queue[index], end=" ")
index = (index + 1) % len(self.queue)
if index == self.front:
break
print()
# 使用示例
queue = CircularQueue(5)
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
queue.display() # 输出: 1 2 3 None None
queue.dequeue()
queue.peek() # 输出: 2
```
阅读全文