在 Python 中,列表(list
)是一种非常灵活的数据结构,可以用来实现栈(Stack)和队列(Queue)这两种常见的数据结构。栈和队列是计算机科学中非常重要的数据结构,广泛应用于算法、操作系统、编译器等领域。
1. 栈(Stack)的实现
栈是一种 后进先出(LIFO, Last In First Out) 的数据结构,支持两种主要操作:
- 入栈(Push):将元素添加到栈顶。
- 出栈(Pop):移除并返回栈顶元素。
1.1 使用列表实现栈
Python 列表的 append()
和 pop()
方法非常适合实现栈。
class Stack:
def __init__(self):
self.items = [] # 使用列表存储栈的元素
def push(self, item):
"""入栈操作"""
self.items.append(item)
def pop(self):
"""出栈操作"""
if not self.is_empty():
return self.items.pop()
else:
raise IndexError("pop from empty stack")
def peek(self):
"""返回栈顶元素,但不移除"""
if not self.is_empty():
return self.items[-1]
else:
raise IndexError("peek from empty stack")
def is_empty(self):