本题要求实现一个普通顺序队列。 当输入1 2 3 -1时,输出为1 2 3 。 当输入为1 2 3 4 5 6 7 8 9 10 11 -1时,输出为 queue is full! 1 2 3 4 5 6 7 8 9 10
时间: 2024-01-10 19:02:15 浏览: 82
Java实现栈和队列面试题
-1。 这是一个简单的队列操作,我们可以使用数组实现。对于输入的每个元素,我们可以将其插入队列的末尾。如果队列已满,输出“queue is full!”。否则,当输入-1时,我们可以按顺序输出队列中所有元素。下面是一个示例实现:
```python
class Queue:
def __init__(self, capacity):
self.capacity = capacity
self.size = 0
self.queue = [None] * capacity
self.head = 0
self.tail = 0
def enqueue(self, value):
if self.size == self.capacity:
print("queue is full!")
return False
else:
self.queue[self.tail] = value
self.tail = (self.tail + 1) % self.capacity
self.size += 1
return True
def dequeue(self):
if self.size == 0:
return None
else:
item = self.queue[self.head]
self.head = (self.head + 1) % self.capacity
self.size -= 1
return item
def print_queue(self):
while self.size > 0:
print(self.dequeue(), end=" ")
print()
queue = Queue(10)
while True:
num = input()
if num == "-1":
queue.print_queue()
break
else:
queue.enqueue(int(num))
```
当我们运行以上代码并输入1 2 3 -1时,它会输出1 2 3。而当我们输入1 2 3 4 5 6 7 8 9 10 11 -1时,它会输出queue is full! 1 2 3 4 5 6 7 8 9 10。
阅读全文