使用python列表实现栈数据结构(stack)。编写从堆栈中的函数push、pop和peek元素。
时间: 2024-09-23 12:06:37 浏览: 48
3分钟带你搞懂栈和队列(Python实现)——不懂你锤我
在Python中,可以使用列表来简单地实现栈数据结构。栈是一种特殊的数据结构,遵循“后进先出”(Last In First Out, LIFO)的原则。以下是使用列表实现基本操作`push`(入栈)、`pop`(出栈)和`peek`(查看顶部元素但不移除)的示例:
```python
class Stack:
def __init__(self):
self.items = []
# push operation (入栈)
def push(self, item):
self.items.append(item)
# pop operation (出栈)
def pop(self):
if not self.is_empty():
return self.items.pop() # 返回并移除最后一个元素
else:
raise Exception("Stack is empty")
# peek operation (查看顶部元素但不移除)
def peek(self):
if not self.is_empty():
return self.items[-1] # 返回顶部元素,但不改变栈的内容
else:
raise Exception("Stack is empty")
# check if the stack is empty
def is_empty(self):
return len(self.items) == 0
# 示例
stack = Stack()
stack.push(1)
stack.push(2)
print(stack.peek()) # 输出 2
print(stack.pop()) # 输出 2,然后栈顶元素变为 1
```
在这个例子中,`push()`方法将元素添加到列表的末端,`pop()`方法弹出并返回列表末尾的元素,`peek()`则查看但不移除末尾元素。如果尝试从空栈中弹出或查看元素,会抛出异常。
阅读全文