创建名为 ex030501_02.py 的文件 (1)初始化一个链栈 LinkStack。 (2)判断栈是否为空。 (3)将元素 2,4,6 依次进栈。 (4)获取栈顶元素。 (5)将栈中元素依次出栈并输出。
时间: 2024-10-29 11:25:18 浏览: 20
创建名为 `ex030501_02.py` 的 Python 文件,我们可以按照要求编写一个简单的链式栈(基于单链表实现):
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkStack:
def __init__(self):
self.top = None
# 判断栈是否为空
def is_empty(self):
return self.top is None
# 入栈操作
def push(self, data):
new_node = Node(data)
new_node.next = self.top
self.top = new_node
# 出栈操作并返回栈顶元素
def pop(self):
if not self.is_empty():
temp = self.top
self.top = self.top.next
return temp.data
else:
raise Exception("Stack is empty")
# 获取栈顶元素但不移除
def peek(self):
if not self.is_empty():
return self.top.data
else:
raise Exception("Stack is empty")
# 示例:执行操作
if __name__ == "__main__":
stack = LinkStack()
stack.push(2)
stack.push(4)
stack.push(6)
print("Is the stack empty? ", stack.is_empty()) # 输出:False
print("Top element: ", stack.peek()) # 输出:2
while not stack.is_empty():
print("Popped element: ", stack.pop()) # 输出:6, 4, 2
```
在这个代码里,我们首先定义了 `Node` 类表示链表节点,并实现了 `LinkStack` 类,包含 `is_empty`、`push`、`pop` 和 `peek` 方法。然后在主程序部分演示如何使用这个栈并执行相应的操作。
阅读全文