重学数据结构之顺序表和链表的比较

1. 优点

1.1 顺序表的主要优点:

没有使用指针,不用花费额外开销;
线性表元素的读访问非常简洁便利

1.2 链表的主要优点:

无需事先了解线性表的长度
允许线性表的长度动态变化
能够适应经常删除内部元素的情况

顺序表是存储静态数据的不二之选
链表是存储动态变化的良方

2. 存储密度

n表示线性表当前元素的个数
p表示指针的存储单元大小(通常为4bytes)
E表示数据元素的存储单元大小
D表示可以在数组存储的线性元素的最大数目
空间需求:
顺序表的空间需求为DE
链表的空间需求为n(P+E)
n的临界值 即n>DE/(P+E)
n越大,顺序表的空间效率就更高
如果P=E,则临界值为D/2

3. 应用场合的选择

3.1顺序表不适合的场合

经常插入删除时,不直接使用顺序表
线性表的最大长度也是一个重要因素

3.2链表不适合的场合

当读操作比插入删除操作频率大时,不应该选择链表
当指针的存储开销和整个节点内容所占的空间相比其比例较大时,应该慎重选择

3.3选择顺序表

节点总数目可以估计
线性表中结点比较稳定(插入删除少)
n>DE/(P+E)

3.4选择链表

节点数目无法预知
线性表中节点动态变化(插入删除少)
n

你可能感兴趣的:(链表,数据结构,算法)