基础概念

定义:一种特殊的线性数据结构,遵循 后进先出 (LIFO) 原则

例子:你正在叠积木。你只能在顶部添加或移除积木,最先放上去的积木最后才能拿下来

特点:

  • 后进先出 (LIFO): 栈中的元素按照入栈顺序依次出栈。最后一个入栈的元素第一个出栈
  • 线性结构: 栈中的元素按照顺序排列,每个元素都有一个上一个元素和一个下一个元素

基本操作

  • 入栈 (Push): 将元素添加到栈的顶部
  • 出栈 (Pop): 从栈的顶部移除元素

应用场景

  • 函数调用: 函数调用过程,栈用来存储函数的参数和局部变量
  • 表达式求值:  可以使用栈来计算表达式,例如中缀表达式转换为后缀表达式
  • 回溯算法:  需要回溯操作,栈可以用来存储回溯路径
  • undo/redo 操作:  软件可以使用栈来实现 undo/redo 功能,记录操作历史