栈的链式存储结构
栈的链式存储使用链表作为底层容器,通过栈顶指针链接节点。
节点结构
每个节点包含以下两部分:
- 数据域:存储当前节点的元素内容
- 指针域:指向链表中的下一个节点
工作原理
- 维护一个指向栈顶元素的 top 指针来管理整个链栈
- 入栈(push):创建新节点,将其指针指向原栈顶节点,然后更新 top 指向新节点
- 出栈(pop):取出 top 指向的节点元素,将 top 更新为原栈顶节点的下一个节点,然后释放原栈顶节点
特点
- 无需预先分配固定空间,理论上仅受可用内存限制
- 不会出现栈满的情况(除非内存耗尽)
- 每个节点需要额外的指针存储开销
- 适用于元素数量变化较大或不可预知的场景
链接到
- 上一个知识点:5.3 栈的顺序存储结构
- 下一个知识点:5.5 栈的STL实现