设从键盘输入一整数的序列: a1, a2, a3, ⋯ , an,试编写算法实现:用栈结构存储输入的整数,当ai≠ -1 时,将ai 进栈;当ai=-1 时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。
时间: 2024-05-08 19:19:48 浏览: 122
栈的算法实现
好的,我理解了您的问题。下面是基于您的要求,用 Python 语言实现的算法:
```python
class Stack:
def __init__(self):
self.stack = []
def is_empty(self):
return len(self.stack) == 0
def push(self, item):
self.stack.append(item)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
return None
s = Stack()
while True:
try:
n = int(input("请输入整数:"))
if n == -1:
top = s.pop()
if top is None:
print("栈已空")
else:
print("弹出整数:", top)
else:
s.push(n)
except Exception as e:
print("发生异常:", e)
break
```
这个算法中,我们定义了一个 Stack 类表示栈。程序中每次输入一个整数,如果它不是 -1,则将其压入栈中。如果输入的整数是 -1,则弹出栈顶元素并打印。如果栈已空,则打印“栈已空”的提示信息。如果程序出现了异常,则打印错误信息并结束程序。
在运行程序时,您可以逐个输入整数,直到输入的整数是 -1 为止。程序将一直运行,直到程序出现异常或者您手动结束程序。
阅读全文