使用数据结构编写一个程序,在自定义函数中完成下列功能并在主函数中进行测试(下列要求中所说的栈均指顺序线):(1) 初始化栈S。(2) 销毁栈S。(3) 判断栈5是否为空。(4) 将元素e入栈。(5) 将栈顶元素出栈并保存到元素e中,
时间: 2024-10-11 16:07:18 浏览: 7
在Python中,我们可以使用列表作为简单的栈数据结构来实现这个功能。这里是一个基本的实现:
```python
class Stack:
def __init__(self):
# (1) 初始化栈S
self.stack = []
def is_empty(self):
# (3) 判断栈是否为空
return len(self.stack) == 0
def push(self, e):
# (4) 元素入栈
self.stack.append(e)
def pop(self):
# 如果栈为空,则抛出异常
if self.is_empty():
raise Exception("Stack is empty")
else:
# (5) 出栈并保存元素
top_element = self.stack.pop()
return top_element
def destroy(self):
# (2) 销毁栈S(实际上不需要,因为Python中的数据结构不会自动销毁,但为了表示清空)
self.stack = []
def test_stack():
s = Stack() # 创建栈实例
print(s.is_empty()) # 测试是否为空,应返回True
s.push(10) # 入栈
print(not s.is_empty()) # 测试是否为空,应返回False
top_element = s.pop() # 出栈并打印
print(top_element) # 应该打印10
try:
s.pop() # 尝试再次出栈,会触发错误
except Exception as e:
print(e) # 应该打印"Stack is empty"
s.destroy() # 清空栈
# 运行测试函数
test_stack()
```
在这个例子中,我们创建了一个`Stack`类,包含了初始化、检查空、入栈、出栈以及销毁栈的方法。在`test_stack()`函数中,我们演示了如何使用这个栈,并处理了一些特殊情况。