【数据结构】链表与顺序表的比较

不同点:

顺序表和链表是两种常见的数据结构,他们的不同点在于存储方式和插入、删除操作、随机访问、cpu缓存利用率等方面。

一、存储方式不同:

顺序表:

顺序表的存储方式是顺序存储,在内存中申请一块连续的空间,通过下标来进行存储;

链表:

链表的存储方式是链式存储,申请的空间是未必连续的,以节点的形式连接,每个节点会有一个next指针,指向下一个节点,通过指针来访问元素;

二、插入、删除的效率不同:

顺序表:

插入删除元素时,需要移动元素的位置也就是搬移元素,导致效率低下

链表:

插入删除时只需要修改指针指向。

三、内存利用率:

顺序表:

需要扩容,创建空间大小是固定的,当空间不够时需要进行扩容,以2倍的关系扩增的,你少一个空间,我增大到原来的2倍,还会有多余空间未使用,所以扩容会造成空间浪费的现象。

但是注意我们因为用的realloc扩容,所以扩容本身会有消耗!!👉👉👉

由于realloc扩容的特性,不确定是原地还是异地扩容,这个与编译器有点关系

原地扩容:扩容的空间地址与原来地址相同

异地扩容:扩容的空间地址与原来地址不同(将原来的数据拷贝过来,还要销毁原来的空间)

链表:

按需申请的空间,不会存在空间浪费现象,利用率极高

四、随机访问:

顺序表:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值