python设从键盘输入一整数的序列:a,q,“3,…,a",试编写算法实现:用栈结构存储输入的整数,当 a≠-1时,将α进栈;当 a=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。
时间: 2024-09-24 17:23:10 浏览: 29
在Python中,你可以创建一个简单的算法来实现这个需求。首先,我们需要创建一个空栈,然后循环读取用户的输入。如果输入的是数字a且不等于-1,我们将其压入栈中;如果输入的是-1,则检查栈是否为空,如果不为空就弹出栈顶元素并打印,如果栈已满则抛出异常。以下是实现这一功能的示例代码:
```python
def process_sequence():
stack = []
try:
while True:
user_input = input("请输入一个整数(a为结束符,不等于-1):")
if user_input == 'q':
break
a = int(user_input)
if a != -1:
if len(stack) >= max_stack_size: # 设置最大栈容量
raise Exception("栈已满,无法继续添加元素")
stack.append(a)
elif a == -1:
if not stack:
print("栈为空,无元素可以弹出")
else:
print(f"栈顶元素是:{stack.pop()}")
except ValueError:
print("无效输入,请输入整数!")
except Exception as e:
print(e)
max_stack_size = 5 # 可以根据需要调整最大栈容量
process_sequence()
```
在这个代码中,我们使用了try-except块处理可能出现的异常,如无效输入或栈满。
阅读全文