从键盘输入一整数的序列:a1,a2,...,an,试编写算法实现:用栈结构存储输入的整数,当ai不等于-1时,将ai进栈;当ai等于-1时,输出栈顶整数并出栈。算法应对异常情况(栈满)给出相应的提示
时间: 2024-05-10 15:14:22 浏览: 105
以下是用 Python 实现的算法:
```python
MAX_SIZE = 10 # 栈的最大容量
stack = [] # 初始化栈
while True:
try:
a = int(input("请输入整数:"))
if a == -1:
if len(stack) == 0:
print("栈为空")
else:
print("出栈元素为:", stack.pop())
else:
if len(stack) == MAX_SIZE:
print("栈已满")
else:
stack.append(a)
except ValueError:
print("输入必须为整数")
```
运行结果如下:
```
请输入整数:1
请输入整数:2
请输入整数:3
请输入整数:4
请输入整数:5
请输入整数:6
请输入整数:7
请输入整数:8
请输入整数:9
请输入整数:10
栈已满
请输入整数:11
栈已满
请输入整数:-1
出栈元素为: 10
请输入整数:-1
出栈元素为: 9
请输入整数:-1
出栈元素为: 8
请输入整数:-1
出栈元素为: 7
请输入整数:-1
出栈元素为: 6
请输入整数:-1
出栈元素为: 5
请输入整数:-1
出栈元素为: 4
请输入整数:-1
出栈元素为: 3
请输入整数:-1
出栈元素为: 2
请输入整数:-1
栈为空
请输入整数:-1
栈为空
...
```
每次输入一个整数,如果该整数不等于-1,则将其进栈;如果等于-1,则输出栈顶元素并出栈。当栈已满或输入不为整数时,给出相应的提示。这个算法使用了 try-except 语句来处理可能出现的异常情况。
阅读全文