链栈 与 顺序栈 异同:
都是 线性表,都是栈顶插入删除受限的线性表
物理存储方式不同,前者用链、指针;后者用顺序存储结构也就是数组。
以下是必须进行的分析,比较,对理解本质有帮助。懂得区别,优劣才能灵活运用。
数据结构的比较:
1 、 空间比较: 1)空间分配方式 2)存储密度
2、 时间比较: 1)存取 2)插入删除
顺序栈 空间分配需要一次性分配足够的内存。分多了浪费,分少了不够用。
链栈 空间分配时动态进行的,需要多少给多少。
顺序栈的存储密度是1.
链栈 的存储密度永远<1. 因为每个数据元素需要额外添加一个链指针。
顺序栈的存取时间复杂度是 O(1),插入删除也是o(1)的时间复杂度。——(因为栈只能在栈顶插入、删除和存取)
链表栈的存取时间复杂度是 O(1),插入删除的时间复杂度是 O(1)——(因为栈只能在栈顶插入、删除和存取)
对算法进行分析:
1) 空间复杂度 2) 时间复杂度