7-8 有关队列操作 分数 10 作者 lsr 单位 枣庄学院 请实现一个MyQueue类,实现出队,入队,显示队列,求队列长度。 实现入队方法 push(int x); 实现出队方法 pop(); 实现求队列长度方法 size();实现显示队列方法:show() 。 输入格式: 每个输入包含1个测试用例。 每个测试用例第一行给出一个正整数 n (n <= 10^6) ,接下去n行每行一个数字,表示一种操作: 1 x : 表示从队尾插入x,0<=x<=2^31-1。 2 : 表示队首元素出队。 3 : 表示求队列长度。4:表示显示队列中所有元素。 输出格式: 对于操作1,将要添加的元素添加到队列的尾部 对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素,并将这个元素从队列中删除。 对于操作3,请输出队列长度。 每个输出项最后换行。 对于操作4,输出队列中每个元素,元素之间用空格分隔,最后一个元素后面没有空格。 输入样例: 在这里给出一组输入。例如: 9 1 23 1 34 3 4 2 1 56 2 3 1 90 输出样例: 在这里给出相应的输出。例如: 2 23 34 23 34 1
时间: 2024-02-15 22:05:11 浏览: 157
以下是实现了 MyQueue 类的 Python3 代码:
```python
class MyQueue:
def __init__(self):
self.items = []
def isEmpty(self):
return not bool(self.items)
def push(self, x):
self.items.append(x)
def pop(self):
if self.isEmpty():
print("Invalid")
else:
print(self.items.pop(0))
def size(self):
print(len(self.items))
def show(self):
print(" ".join(str(x) for x in self.items))
if __name__ == '__main__':
n = int(input())
my_queue = MyQueue()
for i in range(n):
ops = input().split()
if ops[0] == '1':
my_queue.push(int(ops[1]))
elif ops[0] == '2':
my_queue.pop()
elif ops[0] == '3':
my_queue.size()
elif ops[0] == '4':
my_queue.show()
```
其中,MyQueue 类实现了入队、出队、求队列长度以及显示队列所有元素的操作。具体实现如下:
- `__init__()`: 类的初始化方法,创建一个空列表 `items` 作为队列的存储空间。
- `isEmpty()`: 判断队列是否为空,如果队列为空则返回 True,否则返回 False。
- `push(x)`: 入队操作,将元素 `x` 添加到队列的末尾。
- `pop()`: 出队操作,从队列的头部删除一个元素并输出该元素,如果队列为空则输出 "Invalid"。
- `size()`: 输出队列的当前长度。
- `show()`: 输出队列中的所有元素。
在主函数中,我们根据输入的操作类型调用相应的 MyQueue 类方法进行操作。
阅读全文