python链栈编程题
时间: 2025-02-07 13:02:57 浏览: 24
### Python 实现链式栈数据结构
链式栈是一种基于链表实现的栈结构,其基本操作包括初始化、压栈(push)、弹栈(pop)以及获取栈顶元素(top)。下面展示如何使用Python编写一个简单的链式栈。
#### 定义节点类
为了构建链式栈,首先需要定义一个节点类`Node`用于存储单个元素及其指向下一个节点的指针:
```python
class Node:
def __init__(self, data=None):
self.data = data # 存储的数据项
self.next = None # 对下一项的引用,默认为空
```
#### 创建链式栈类
接着定义`LinkedStack`类来管理这些节点并提供标准的栈接口方法:
```python
class LinkedStack:
def __init__(self):
""" 初始化一个新的空栈 """
self.top_node = None
def is_empty(self):
""" 判断当前栈是否为空 """
return self.top_node == None
def push(self, item):
""" 将新元素加入到栈顶 """
new_node = Node(item)
new_node.next = self.top_node
self.top_node = new_node
def pop(self):
""" 移除并返回栈顶元素;如果栈已空,则抛出异常 """
if self.is_empty():
raise Exception('The stack is empty.')
popped_item = self.top_node.data
self.top_node = self.top_node.next
return popped_item
def top(self):
""" 返回但不移除栈顶元素;如果栈已空,则抛出异常 """
if self.is_empty():
raise Exception('The stack is empty.')
return self.top_node.data
```
此代码实现了链式栈的核心功能[^2]。通过这种方式,可以在不需要预先分配固定大小数组的情况下动态调整栈容量,并且能够高效地执行入栈和出栈操作。
阅读全文
相关推荐













