基础概念
定义:一种特殊的线性数据结构,遵循 后进先出 (LIFO) 原则
例子:你正在叠积木。你只能在顶部添加或移除积木,最先放上去的积木最后才能拿下来
特点:
- 后进先出 (LIFO): 栈中的元素按照入栈顺序依次出栈。最后一个入栈的元素第一个出栈
- 线性结构: 栈中的元素按照顺序排列,每个元素都有一个上一个元素和一个下一个元素
基本操作
- 入栈 (Push): 将元素添加到栈的顶部
- 出栈 (Pop): 从栈的顶部移除元素
应用场景
- 函数调用: 函数调用过程,栈用来存储函数的参数和局部变量
- 表达式求值: 可以使用栈来计算表达式,例如中缀表达式转换为后缀表达式
- 回溯算法: 需要回溯操作,栈可以用来存储回溯路径
- undo/redo 操作: 软件可以使用栈来实现 undo/redo 功能,记录操作历史