顺序表和链表的比较

本文对比了顺序表和链表的空间性能与时间性能。在存储密度方面,顺序表更优;而在插入和删除操作上,链表表现更好。顺序表适合随机访问,链表则适用于顺序访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     这段时间开始学习软考里面的内容,对顺序表和链表,比较着学习理解的更多了,跟大家分享一下。

 

一、空间性能

1、存储密度:

    顺序表存储一个数据用一个空间;而链式存储,存储数据的同时还要存储指针,此时用链式表存储数据要用两个空间。所以,存储密度(数据的密度)上,顺序存储更优;

2、容量分配:

    我们使用的数组采用顺序存储的方式,在使用之前,会先定义数组的容量,比如:intArray= new int[10];而链式存储,可以动态添加,需要时再添加,用指针指向新添加的数据。

二、在时间性能上

1、插入和删除

   链式存储中删除和插入节点影响的量只有一个节点,删除节点,前驱节点用指针直接指向后继节点;插入节点,把插入节点的后继节点指向插入节点的位置,前驱节点再用指针直接指向插入节点,只需要1的时间复杂度。

   顺序存储删除某个节点后,还要把后面的节点前移(除了删除最后一个)。插入时要把节点后移(除了插到最后)。链式存储的时间复杂度优于顺序存储;

2、查找

   链式和顺序存储相同,都是使用顺序查找,从第一个元素开始,依次向后查找,消耗的时间相同。但如果顺序表的数据按从小到大的顺序排列,使用二分查找法,效率会提高;

3、读运算

   顺序表:随机存取;

   链表:从第一个元素开始,next——>next…查到最后,最好的情况是,需要的元素在第一个位置,时间复杂度是1。最坏的情况是,需要的元素在最后一个位置,时间复杂度是n。

    再次学习软考的内容,理解的更多了些,如果有歧义的地方,希望大家指出,帮小虾米度过难关。

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王师傅66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值