(1)初始化一个循环顺序队列CircleQ; (2)判断队列是否为空。 (3)遍历队列内的CircleQueue.所有元素。 (4)将元素1,3,5,7,9依次进队至队满。 (5)遍历队列内的所有元素。 (6)获取队头元素。 (7)获取队列的长度。 (8)出队一个元素并输出。
时间: 2024-10-17 11:10:19 浏览: 44
在Python中,我们可以使用`collections.deque`来模拟循环顺序队列(类似于Circular Queue)。这里是一个简单的实现:
```python
from collections import deque
class CircleQ:
def __init__(self, capacity):
self.queue = deque(maxlen=capacity) # 初始化队列,容量为capacity
# 判断队列是否为空
def is_empty(self):
return not bool(self.queue)
# 遍历队列内的所有元素
def traverse(self):
print("Queue elements:", list(self.queue))
# 将元素入队
def enqueue(self, *elements):
for num in elements:
if self.is_full():
raise Exception("Queue is full")
self.queue.append(num)
# 判断队列是否已满
def is_full(self):
return len(self.queue) == self.queue.maxlen
# 获取队头元素(模拟队头,因为deque是双端的)
def get_head(self):
if self.is_empty():
return None
else:
return self.queue[0]
# 出队一个元素并返回(如果空则抛异常)
def dequeue(self):
if self.is_empty():
raise Exception("Queue is empty")
else:
return self.queue.popleft()
# 示例操作
circle_q = CircleQ(5) # 容量为5
circle_q.enqueue(1, 3, 5, 7, 9) # 入队
circle_q.traverse() # 输出入队元素
print(circle_q.get_head()) # 打印队头元素
print(len(circle_q.queue)) # 打印当前队列长度
circle_q.dequeue() # 出队并打印结果
```
阅读全文