区别
顺序表和链表的比较
顺序表
单链表
存取方式
可顺序存取,可随机存取
只能从表头顺序存取
逻辑结构和物理结构
顺序存储,逻辑上相邻物理上也相邻
链式存储,逻辑上相邻物理上不一定相邻,通过指针链接
按值查找
按值查找:O(n)(无序) 折半查找 O(log2n)(有序)
O(n)
按序号查找
O(1)
O(n)
插入
O(n),平均需要移动n/2个元素
只需修改相关结点
删除
O(n),平均需要移动n/2个元素
只需修改相关结点
空间分配
可能会出现存储空间大量闲置或空间不足溢出
动态申请空间,操作灵活、高效
怎样选取存储结构
1、基于存储的考虑
难以估计线性表的长度或存储规模时,不易采用顺序表;但链表的存储密度较低,链式存储结构的存储密度是小于1的。
2、基于运算的考虑
若经常做的运算是按序访问数据元素,则显然顺序表更优。
若经常做插入删除操作,则链式存储结构则更优。
3、基于环境的考虑
顺序表容易实现,链表是基于指针的,相对来讲,前者实现更加简单,实现难易度也是需要考虑的一点。
Last updated
Was this helpful?