1.编写一个程序,在自定义函数中完成下列功能并在主函数中进行测试(下列要求中所说的栈均指顺序栈):(1)创建并初始化栈S。(2)判断栈S是否为空。(3)元素入栈,入栈元素:()()[([])]。(4)将栈顶元素出栈、保存到元素e中并输出。(5)销毁栈S。
时间: 2024-10-16 09:21:22 浏览: 45
在Python中,我们可以使用列表来模拟栈的功能。首先,我们创建一个名为Stack的类,包含push(入栈)、pop(出栈)和is_empty(判断空栈)等方法。接下来是一个简单的实现:
class Stack:
def __init__(self):
self.stack = []
def is_empty(self):
return not bool(self.stack)
def push(self, item):
self.stack.append(item)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
raise Exception("Stack is empty")
def destroy(self):
del self.stack[:]
def main():
# 创建并初始化栈S
s = Stack()
elements = ['(', ')', '(', '[', ']']
# 元素入栈
for elem in elements:
s.push(elem)
print(f"Pushing {elem}, stack now: {s.stack}")
# 判断栈是否为空
if s.is_empty():
print("Stack is empty")
else:
print("Stack is not empty")
# 出栈元素并输出
e = s.pop()
print(f"Popped element: {e}, after popping stack: {s.stack}")
# 销毁栈
s.destroy()
print("Stack has been destroyed.")
if __name__ == "__main__":
main()