部分内容参考自 论文 苏煜《对块状链表的一点研究》
1. 数组和链表对比:
操作 | 数组 | 链表 |
---|---|---|
存储结构 |
地址连续的存储单元,物理位置相邻 |
地址不连续,物理位置不相邻 |
定位 |
O(1) |
O(N) |
添加 |
O(N) |
O(1) |
删除 |
O(N) |
O(1) |
数组有很好的定位功能,一般对应于固定的长度,不适合添加/删除等操作,当数组有序时,可二分查找某值,效率很好,O(logN)。
链表添加删除效率极高,很适合这类操作。但定位效率很低。
2.块状链表
块状链表是对数组和链表的折中,集两者之长,在定位,添加删除的效率上都有大幅提升。
整体上使用链表,链表节点是一个大小适当的数组。
如下图:
3.基本操作