解决建立一个循环队列,栈中有0到9一共十个元素,显示该队列的所有元素,手动选择删除三个元素后再显示该队列中剩下的元素
时间: 2023-06-04 11:08:31 浏览: 95
很高兴回答你的问题。以下是实现循环队列及删除元素的代码:
```python
MAX_SIZE = 10 # 队列的最大容量
class CircularQueue:
def __init__(self):
self.queue = [None] * MAX_SIZE # 初始化一个大小为MAX_SIZE的队列
self.front = 0 # 队头
self.rear = 0 # 队尾
self.size = 0 # 队列当前元素数量
def enqueue(self, data):
if self.size == MAX_SIZE:
print("队列已满,无法添加元素!")
return False
else:
self.queue[self.rear] = data # 入队
self.rear = (self.rear + 1) % MAX_SIZE # 更新队尾索引
self.size += 1 # 更新队列当前元素数量
return True
def dequeue(self):
if self.size == 0:
print("队列为空,无法删除元素!")
return False
else:
data = self.queue[self.front] # 取出队头元素
self.queue[self.front] = None # 将队头元素置为None
self.front = (self.front + 1) % MAX_SIZE # 更新队头索引
self.size -= 1 # 更新队列当前元素数量
return data
def print_queue(self):
if self.size == 0:
print("队列为空,无法打印元素!")
else:
print("队列中的所有元素为:", end="")
for i in range(self.size):
index = (self.front + i) % MAX_SIZE
print(self.queue[index], end=" ")
print()
# 实例化循环队列
cq = CircularQueue()
# 入队元素0-9
for i in range(10):
cq.enqueue(i)
# 打印队列中的所有元素
cq.print_queue()
# 删除三个元素
cq.dequeue()
cq.dequeue()
cq.dequeue()
# 打印删除元素后的队列
cq.print_queue()
```
输出结果为:
```
队列中的所有元素为:0 1 2 3 4 5 6 7 8 9
队列中的所有元素为:3 4 5 6 7 8 9
```
希望这能对你有所帮助。