- Objective: - Breadcrumb: 计算机科学的底层原理 # 概念阐释 堆栈是一种计算机科学中的[[数据结构]]。只允许后进先出LIFO的运作原理,即最后一个添加的将第一个被移除。基本操作包括: 1. 压栈(Push):在堆栈顶部添加一个新的数据项。 2. 弹栈(Pop):移除堆栈顶部的数据项并返回其值。 3. 查看栈顶(Peek/Top):返回堆栈顶部的数据项,但不移除它。 堆栈可以用于解决许多编程问题,如括号匹配、[[js 函数与调用函数|函数调用]],也包括对象中的[[js objects get方法获取属性| 方法调用]]。 # 实例 >堆栈(Stack)是一种特殊的数据结构,就像一个放玩具的盒子,但这个盒子有个特殊的规则:你只能从盒子的顶部放入或拿出玩具。想象一下,你有一个弹簧床,你可以把玩具一个接一个地放在弹簧床上,它们会被压在一起。这就像是堆栈中的“压栈”操作,即把玩具放到盒子顶部。 > 当你想要拿一个玩具玩时,你只能从弹簧床顶部拿走一个玩具。这就是堆栈中的“弹栈”操作,即从盒子顶部拿走一个玩具。因为这个盒子遵循“后进先出”(Last In First Out,LIFO)的原则,所以你放进去的最后一个玩具会是第一个被拿出来的。 > 例如,假设你有三个玩具:玩具A、玩具B和玩具C。你首先把玩具A放到弹簧床上,然后是玩具B,最后是玩具C。现在,如果你想拿一个玩具玩,你只能先拿走玩具C,然后是玩具B,最后是玩具A。这就是堆栈的工作方式。 > 在计算机科学中,堆栈可以用来解决很多问题,比如检查括号是否匹配,或者跟踪计算机程序中函数的调用顺序。 # 相关内容 堆栈与堆(Heap)是两个不同的概念 ^304f7d # 参考资料 - [堆栈的定义 (openai.com)](https://chat.openai.com/chat?model=gpt-4) - [堆栈 - 维基百科,自由的百科全书 (wikipedia.org)](https://zh.wikipedia.org/wiki/%E5%A0%86%E6%A0%88)