不带头非循环双向链表:链接
双向链表:多了一个 prev 指向该节点的前驱。便于插入删除。
- 顺序表和链表的区别和联系:
顺序表:
- 最大的好处:空间连续、支持随机(下标)访问
- 不容易有内存碎片
- 对缓存更友好
- 单个数据而言,空间更节省
- 缺点:
- 中间或前面部分的插入删除时间复杂度O(N)
- 增容的代价比较大。
链表:
- 最大的好处:任意位置插入删除时间复杂度为O(1)
- 如果数据规模较大,不需要预留空间(没有增容问题,插入一个开辟一个空间)
- 缺点:以节点为单位存储,不支持随机访问
一半情况使用顺序表就可以了。
语言支持的:
- java.util.ArrayList 顺序表
- java.util.LinkedList 链表