学习数据结构肯定会接触顺序表与链表,这两者之间的对比还是很明显的,优势也各不相同.
首先顺序表:有点类似于数组
1.数据保存在连续的内存空间上,访问的时候可以支持用下标随机访问.
2.比较擅长尾部删除一个元素(O(1))/尾部插入一个元素(有可能会触发扩容逻辑-O(N)).
3.如果是中间插入删除,时间复杂度就很高(O(N))
链表:
1.相比于顺序表:元素之间不是在连续的内存空间上,但是每个数据节点可以引入一个 next 引用,通过这个引用就能找到当前节点的下一个节点,还可以引入prev来找到前一个节点.
2.不支持用下标随机访问,但是在指定位置插入和删除元素的效率比较高.
3.存储相同数量的数据时,链表占的内存空间要比顺序表大(因为链表的每个节点还要维护一个next).