设从键盘输⼊⼀整数的序列:a1, a2, a3, …, an,试编写算法实现:⽤栈结构存储输⼊的整数,当 ai ≠ −1时,将 ai进栈;当 ai = −1 时,输出栈顶整数并出栈。算法应对异常情况(⼊栈满 等)给出相应的信息。用python写一段代码
时间: 2024-10-14 08:10:46 浏览: 49
可以使用Python的列表作为栈的数据结构来实现这个功能,因为列表在Python中支持动态大小调整。下面是一个简单的示例算法:
```python
def process_sequence():
stack = []
input_sequence = []
while True:
# 获取用户输入
ai = int(input("请输入下一个整数 (输入-1结束): "))
if ai == -1:
break
# 检查栈是否已满
if len(stack) >= max_stack_size: # 假设max_stack_size是你设定的最大栈容量
print("栈已满,无法继续入栈,跳过当前元素.")
continue
# 入栈
stack.append(ai)
# 输出栈顶元素并出栈
while stack:
try:
top_element = stack.pop()
print(f"栈顶元素:{top_element}")
except IndexError:
print("栈为空,无元素可出栈.")
process_sequence()
```
在这个代码中,我们首先定义了一个空栈`stack`和一个用于存储完整输入序列的列表`input_sequence`。然后在循环中获取用户的输入,如果输入的是-1则退出循环。在入栈之前检查栈是否已满,如果满了则提示并跳过。最后,在输入序列处理完后,不断从栈中弹出并打印栈顶元素,直到栈变为空。
注意:实际应用中可能需要根据需求调整`max_stack_size`变量,并添加适当的错误处理和输入验证。
阅读全文