💡
原文中文,约2600字,阅读约需7分钟。
📝
内容提要
栈是一种后进先出的线性表,可以用数组或链表表示。链表可以视为链栈,节点包括指向下一个节点的指针和数据域。栈的操作包括创建、释放、入栈、出栈和清空。
🎯
关键要点
- 栈是一种后进先出的线性表,称为栈顶。
- 栈的主要操作包括入栈(push)和出栈(pop)。
- 栈可以用数组表示(顺序栈)或链表表示(链式栈)。
- 链栈的节点包括指向下一个节点的指针和数据域,维护一个top指针。
- 栈节点的结构体定义包括指向下一个节点的指针和数据域。
- 栈的结构体定义包括top指针和长度。
- 栈的操作函数包括创建、释放、入栈、出栈和清空,复杂度各异。
- 创建栈时分配内存并初始化top指针和长度。
- 入栈时创建新节点并更新栈顶指针和长度。
- 出栈时保存栈顶节点数据,更新栈顶指针并释放节点。
- 清空栈时遍历所有节点并释放内存。
- 释放栈时先清空栈再释放栈本身的内存。
- 在main函数中测试栈的功能,包括入栈、出栈和清空操作。
➡️