堆栈(Stack)也叫栈,是一种先进后出(Last In First Out)的数据结构。具体来说,堆栈数据结构是一种只允许在栈顶进行插入和删除操作的线性数据结构。所谓先进后出,意思是最后入栈的元素最先出栈。
为了更好地理解堆栈,可以将其比喻为餐厅的盘子。餐厅的盘子摆放在柜台上,当服务员上菜时就把盘子堆叠在一起。如果想要取出一只盘子,也只能从最上面取走。如果想要将新的盘子放入堆栈中,也只能把盘子放在最上面。
一般来说,堆栈数据结构会有两个基本操作:压入(Push)和弹出(Pop)。压入操作可以向栈中插入一个元素,将其放在栈顶;弹出操作可以把栈顶的元素弹出,相当于取走最后放进去的元素。
堆栈数据结构在计算机科学中具有重要的应用,例如程序调用栈就是一种堆栈数据结构。当函数被调用时,其内部的局部变量和参数值会被保存在栈中,函数执行结束时,这些值会在栈中被删除。此外,使用堆栈还可以实现逆波兰表达式的计算、缓存撤销操作等等。