栈
顺序栈
- 结构体
|
|
- 入栈操作
|
|
- 出栈
|
|
- 出栈和入栈都没有涉及到循环语句,因此时间复杂度为0(1)
两栈共享空间
- 适合一个栈同增加的同时另一个栈在减少
- 结构体
|
|
当top1 + 1 == top2时视为栈满
入栈
|
|
- 出栈
|
|
链栈
- 结构体
|
|
- 入栈
|
|
- 出栈
|
|
对比
- 顺序栈与链栈的时间复杂度都是O(1)
- 空间上链栈没有空间限制,但是链栈要求每个元素都要有指针域,者也一定程度上增加了内存的开销.顺序栈需要事先规定一个固定长度,可能会造成内存浪费,但是它对于存取时定位很方便
参考资料:《大话数据结构》
源码
|
|
|
|
|
|
|
|
当top1 + 1 == top2时视为栈满
入栈
|
|
|
|
|
|
|
|
|
|
参考资料:《大话数据结构》
源码