栈的基本概念
栈(Stack)是一种操作受限的线性数据结构,其基本规则是先进后出(LIFO, Last In First Out),即最后进入栈的元素最先被取出。
核心特性
- 先进后出:元素只能从栈顶进出,后进入的元素在栈顶,先被取出
- 操作受限:只允许在栈顶进行插入和删除操作
应用场景
- 函数调用:程序中的函数调用使用栈结构来保存返回地址和局部变量
- 递归处理:当递归调用次数过多时,可以用栈来防止内存溢出,将递归转换为非递归实现
- 表达式求值:编译器中用于表达式语法分析和求值
- 括号匹配:检查代码中括号是否正确配对
存储方式
栈有两种常见的存储实现方式:
- 顺序存储:使用数组存储元素
- 链式存储:使用链表存储元素
链接到
- 上一个知识点:无(本章第一个知识点)
- 下一个知识点:5.2 栈的基本操作
- 相关知识点:队列的基本概念