实验要求(1) 根据输入的队列长度 n 和各元素值建立一个循环顺序表表示的队列 (循环队列),并输出队列中各元素值。(2)将数据元素 e 入队,并输出入队后的队列中各元素值。(3)将循环队列的队首元素出队,并输出出队元素的值和出队后队列中各元素值。
时间: 2024-05-16 10:16:05 浏览: 82
好的,这是一道关于循环队列的编程题目,下面是 Python 代码实现,供参考:
```python
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = 0
self.rear = 0
def is_empty(self):
return self.front == self.rear
def is_full(self):
return (self.rear + 1) % self.capacity == self.front
def enqueue(self, value):
if self.is_full():
print("Queue is full")
return
self.queue[self.rear] = value
self.rear = (self.rear + 1) % self.capacity
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
value = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
return value
def display(self):
if self.is_empty():
print("Queue is empty")
return
i = self.front
while i != self.rear:
print(self.queue[i], end=" ")
i = (i + 1) % self.capacity
print(self.queue[i])
if __name__ == "__main__":
n = int(input("Enter queue length: "))
queue = CircularQueue(n)
print("Initial queue:")
queue.display()
for i in range(n):
value = int(input(f"Enter element {i+1}: "))
queue.enqueue(value)
print("Queue after enqueue:")
queue.display()
for i in range(n):
value = queue.dequeue()
print(f"Dequeued element: {value}")
print("Queue after dequeue:")
queue.display()
```
运行程序后,会要求输入队列长度 n 和各元素值,依次进行入队和出队操作,每次操作后输出队列中的所有元素。注意循环队列的队首和队尾指针的变化方式是取模运算,这样可以实现循环队列的循环特性。
阅读全文