数据结构----9.2顺序表和链表的比较

顺序表和链表的比较

维度

顺序表

链表

逻辑结构

都是线性表,都是线性结构

存储结构

/物理结构

顺序存储(连续内存)

链式存储(离散内存)

插入/删除元素

将后续

元素都后移/前移

只需

修改指针即可

随机存取

支持(O (1) 按位查找

按值查找:O(n)

若表内元素有序,可在

O(log2n) 时间内找到

O(n)(按位查找, 按值查找)

时间复杂度 O(n)

时间开销主要来自移动元素

若数据元素很大,则移动的时间代价很高

时间开销主要来自查找目标元素

查找元素的时间代价更低

存储密度

高(无额外指针)

低(需存储指针)

初始化

需预分配空间,可能浪费或不足

只需分配头结点,灵活拓展

插入 / 删除

平均 O (n)(移动元素)

平均 O (n)(查找元素),修改指针快

适用场景

表长可预估、查询频繁

表长不确定、增删频繁

优点

支持随机存取、存储密度高

离散的小空间分配方便,改变容量方便

缺点

大片连续空间分配不方便,改变容量不方便

不可随机存取,存储密度低

核心结论:

  • 若需要频繁查询,选顺序表;若需要频繁增删,选链表。
  • 顺序表适合数据量固定、支持随机访问的场景;链表适合动态变化、内存碎片化的场景。

问题: 请描述顺序表和链表.实现线性表时,用顺序表还是链表好?

顺序表和链表的逻辑结构都是线性结构,都属于线性表。

但是二者的存储结构不同,顺序表采用顺序存储 (特点,带来的优点缺点);链表采用链式存储(特点、导致的优缺点)。

由于采用不同的存储方式实现,因此基本操作的实现效率也不同。当初始化时…;当插入一个数据元素时…;当删除一个数据元素时…;当查找一个数据元素时…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值