用 Python 列表实现栈数据结构( stack )。编栈中的函数 push 、 pop 和 peek 元素。
时间: 2024-09-27 14:09:49 浏览: 37
在Python中,我们可以使用列表(List)来实现栈(Stack)这种数据结构。栈是一种只能在一端进行插入(push)和删除(pop)操作的数据结构,类似于堆积木一样,总是把新的元素放在最上面。以下是三种基本操作的实现:
```python
class Stack:
def __init__(self):
self.stack = []
# push操作 - 向栈顶添加元素
def push(self, item):
self.stack.append(item)
# pop操作 - 删除并返回栈顶元素
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
raise IndexError("Pop from empty stack")
# peek操作 - 查看栈顶元素,但不删除
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
raise IndexError("Peek at empty stack")
# 检查栈是否为空
def is_empty(self):
return len(self.stack) == 0
# 使用示例
s = Stack()
s.push(1) # 栈顶有1
s.push(2) # 现在栈顶有2
print(s.peek()) # 输出2
s.pop() # 移除栈顶元素,现在栈顶是1
```
在这个实现中,`push`方法将元素添加到列表的末尾,`pop`方法从末尾移除并返回元素,`peek`方法则是查看末尾元素但不移动它。如果试图从空栈中弹出或查看元素,会抛出`IndexError`异常。
阅读全文