线性表中顺序表和链表的区别(数据结构基础回顾)(较全面)

顺序表和链表的区别:

相同点

              1.都是线性表结构

              2.元素逻辑存储上是连续的

              3.每个元素都有唯一的前驱和唯一的后继(注意:首元素不存在前驱,尾元素不存在后继(循环链表除外))

不同点

                1.底层存储空间不一样,顺序表底层存储空间是连续的,而链表则是不连续的。

               2.插入和删除方式不同,顺序表任意位置进行插入和删除操作,需要搬运大量的元素,效率低,时间复杂度为O(N)。

                                                      链表任意位置进行插入和删除操作,不需要搬运大量的元素,效率高,时间复杂度为O(1)。

                3.随机访问不同,顺序表底层空间结构为连续的,随机访问特别方便,时间复杂度为O(1)。

                                            链表底层空间结构为不连续的,对随机访问的操作效率低,时间复杂度为O(N)。

                4.扩容:顺序表在插入元素的过程中,如果顺序表容量不足,则需要进行扩容(开辟新空间,把已有元素拷贝到新空间,释放旧空间)

                              链表的独特组成结构,使它在插入是不需要考虑容量是否足够,即不需要考虑扩容。

               5.空间利用率:顺序表空间利用率高,是因为申请一块连续的内存。

                                       链表空间利用率低,因为链表都是一个一个的节点组成的,节点中还有指向下一个节点的指针。而且每个节点都是malloc申请出来的空间,频繁的申请空间会导致空间碎片化,故利用率低。

               6.应用场景不一样:顺序表大多运用在元素高效存储或随机访问频繁的场景。

                                               链表大多运用在任意位置插入和删除操作频繁的场景。

                7.缓存利用率:链表的缓存利用率比顺序表低(计算机的局部原理性)(了解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

三少爷的剑!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值