代码与动画 STACK · LIFO
栈.
在栈顶压入和弹出元素,遵循后进先出。
push / pop O(1)(链式实现)peek O(1)演示容量 6
原理与执行逻辑
栈仅在顶端访问元素,最后加入的元素最先取出。当前实现使用链式节点,top 指向最新压入的节点。
执行步骤
- 入栈时创建节点,令它的 next 指向原 top。
- 将 top 改为新节点。
- 弹栈时保存 top 的值,再令 top 指向它的 next。
- 查看栈顶只读值;空栈弹出或查看时报告错误。
关键理解
push 与 pop 只修改栈顶,保持后进先出。弹栈前必须检查空栈,且返回值应在移动 top 前保存。
简短示例
依次压入 12、25、38 后,连续弹出得到 38、25、12。
代码与执行动画
STEP 0 / 0let top = { value: 38, next: { value: 25, next: { value: 12, next: null } } };size = 3LIFO
当前数据正在操作已访问 / 命中标记 / 指针
0
当前结构
选择操作,观察对应代码和状态变化。
操作当前结构
下一次操作使用上次完成后的数据。重置结构恢复初始示例。
栈的操作规则
代码采用链式栈,top 指向最后压入的节点。弹栈返回顶端值;空栈操作给出错误状态。
对应题目与扩展练习
观察执行过程后,按题目约束调整输入、返回值与实现。链接打开官方题目页面。
- 对应题目20. 有效的括号打开题目
通过后进先出匹配最近尚未闭合的左括号。