顺序表和链表对比

逻辑结构上:都是线性结构,线性表

存储结构上:

优点缺点
顺序表

支持随机存取、

存储密度高

大片连续空间分配不方便

改变容量不方便

链表

离散的小空间分配方便

改变容量方便

不可随机存取

存储密度低

基本操作:

1.创建

顺序表:需要预分配大片连续空间

(分配空间小,则之后不方便扩展容量,分配空间大,则浪费内存空间)

链表:只需分配一个头节点(甚至只声明头指针)

2.销毁

顺序表:

静态分配:静态数组(系统自动回收空间)

动态分配:动态数组(手动free)

(malloc和free必须成对出现)

链表:循环依次删除结点(free)

3.插入和删除

顺序表:

插入删除都要将后续元素后移/前移

时间复杂度O(n),时间开销主要来自于移动元素

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

链表:

插入删除元素只需修改指针即可

时间复杂度O(n),时间开销主要来自于查找元素

(查找元素时间代价一般更小)

4.查找

顺序表: 按位查找 O(1)

链表:     按位查找 O(n)

顺序表: 按值查找 无序O(n) 有序 折半查找O(log n)

链表:     按值查找 O(n)

5.应用场景:

表长难以预估、经常要增加、删除元素 ——链表

表长可预估、查询操作比较多 ——顺序表 eg:课堂点名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值