R7-1 栈的实现及基本操作 分数 35 给定一个初始为空的栈和一系列压栈、弹栈操作,请编写程序输出每次弹栈的元素。栈的元素值均为整数。 输入格式: 输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d压栈,0表示弹栈。n不超过20000。 输出格式: 按顺序输出每次弹栈的元素,每个元素一行。若某弹栈操作不合法(如在栈空时弹栈),则对该操作输出invalid。
时间: 2023-11-04 21:15:16 浏览: 104
栈的基本操作的实现
好的,我明白了。这是一道栈的基本操作题目,我们可以使用数组模拟栈的实现。下是代码实现:
```python
n = int(input())
stack = []
for i in range(n):
op = input().split()
if op[0] == '1':
stack.append(int(op[1]))
else:
if stack:
print(stack.pop())
else:
print("invalid")
```
代码解释:首先读入操作的个数,然后使用一个列表 `stack` 实现栈。对于每个操作,如果是压栈操作,就将整数 `d` 压入栈中;如果是弹栈操作,就弹出栈顶元素并输出,如果栈为空则输出 "invalid"。
阅读全文