什么是栈?
栈(Stack)是一种遵循“后进先出”(LIFO, Last In First Out)原则的线性数据结构。你可以把它想象成一摞盘子:你只能从顶部添加或移除盘子。
栈的两个核心操作是:
push:将元素压入栈顶pop:从栈顶弹出元素
Python中如何实现栈?
Python 的列表(list)天然支持栈操作:
# 使用 list 实现栈
stack = []
# 入栈(push)
stack.append(1)
stack.append(2)
stack.append(3)
# 出栈(pop)
top = stack.pop() # 返回 3
print(stack) # [1, 2]
此外,也可以使用 collections.deque 获得更高效的性能(尤其在大量操作时)。
栈的经典应用场景
- 函数调用栈(程序运行时的函数嵌套)
- 表达式求值与括号匹配(如检查
()[]{}是否合法) - 浏览器的“后退”功能
- 深度优先搜索(DFS)算法
- 撤销(Undo)操作
动手演示:括号匹配检测器
输入一个包含括号的字符串,点击按钮检测是否合法: