栈的链式存储python
时间: 2023-08-07 17:10:46 浏览: 105
在Python中,我们可以使用链表来实现栈的链式存储。
首先,我们需要定义一个节点类来表示链表的每个节点。节点类通常包含两个属性:数据和指向下一个节点的指针。
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
```
接下来,我们定义一个栈类,其中包含栈的基本操作方法:入栈(push)、出栈(pop)、判断栈是否为空(is_empty)以及获取栈顶元素(peek)。
```python
class Stack:
def __init__(self):
self.top = None
def push(self, data):
new_node = Node(data)
if self.top is None:
self.top = new_node
else:
new_node.next = self.top
self.top = new_node
def pop(self):
if self.top is None:
return None
else:
popped_node = self.top
self.top = self.top.next
popped_node.next = None
return popped_node.data
def is_empty(self):
return self.top is None
def peek(self):
if self.top is None:
return None
else:
return self.top.data
```
现在,我们可以创建一个栈对象并进行操作:
```python
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek()) # 输出 3
print(stack.pop()) # 输出 3
print(stack.pop()) # 输出 2
print(stack.is_empty()) # 输出 False
print(stack.pop()) # 输出 1
print(stack.is_empty()) # 输出 True
```
这样,我们就成功地使用链表实现了栈的链式存储。
阅读全文