关注
逻辑上来说两者都属于线性表。
物理上来说,即在内存两种逻辑结构所对应的物理存储分布,数组占用一块连续的内存区,而链表在内存上是不连续的。因此需要一个东西将各个元素串起来,这个串起来的额外操作是通过一个节点指向下一个节点的指针实现的,即对于链表来说每个节点除了要存储对应的元素(数据域),还需存储指向下一个节点的指针(指针域),因此对于链表来说,存储一个节点,相比于数组所要消耗的资源更多。也正因为这种物理结构的差异,使得两者在访问、增加、删除节点这三种操作上所带来的时间复杂度不同。
数组可以使用下标在O(1)的复杂度下访问元素。链表没有下标的概念,只能通过头节点指针,从每一个节点,依次往下找,复杂度为O(n)。
增加元素,由于要保持数组内存的连续性,在所插入位置之后的所有元素都需要依次后移,复杂度为O(n),而链表增加元素只需要改变增加位置前一个节点的指针指向,即可以实现增加,复杂度O(1)。
删除类似于增加,数组中所删除元素之后的元素都需要依次前移,链表也只需改变删除节点前一个节点的指针指向即可,两这复杂度分别为O(n)与O(1)。
综上来说,数组适用于读操作(查询)更多的场景,链表适用于写操作(增删)更多的场景。
查看原帖
点赞 评论
相关推荐


点赞 评论 收藏
分享
牛客热帖
更多
- 1... HR面,到底该准备些啥(附核心问题回答思路)8655
- 2... 如何委婉地拒绝offer6532
- 3... #校招笔试##恒生电子#数据库没学过,第二道A出来了,第三道没A出来,后面有思路但是已经懒得写了3532
- 4... 分享一个很友好的公司2885
- 5... 【彻底战败】秋招11次一面挂2053
- 6... 零基础转前端五个月拿下美团offer2048
- 7... 绿盟 安全工程师1902
- 8... #校招笔试##中国电信#还是有点难度的,专业知识考的很广,行测题做了好久(比代码都久),代码题倒是不难,最后一题要点技巧,其他都是签到送分1801
- 9... 抖音电商泡一个月挂了!1782
- 10... 七牛云路演1748
正在热议
更多
# 国庆后,我的返工状态 #
15646次浏览 81人参与
# 谈薪时HR压价该怎么应对 #
226565次浏览 3232人参与
# 爱玛科技集团求职进展汇总 #
18855次浏览 159人参与
# 什么专业适合考公 #
40938次浏览 243人参与
# 机械制造岗投递时间线 #
31138次浏览 379人参与
# 华为海思工作体验 #
27638次浏览 116人参与
# 深信服秋招来了 #
277836次浏览 2912人参与
# 招银网络求职进展汇总 #
153619次浏览 965人参与
# 26届秋招投递记录 #
43871次浏览 488人参与
# 毕业租房也有小确幸 #
138003次浏览 4480人参与
# 央国企投递记录 #
119838次浏览 1508人参与
# 实习中的菜狗时刻 #
436669次浏览 3499人参与
# 找工作有哪些冷知识 #
158679次浏览 2443人参与
# 电信求职进展汇总 #
17833次浏览 114人参与
# 百度工作体验 #
266083次浏览 2105人参与
# 薪资爆料 #
168233次浏览 1387人参与
# 深信服提前批进度交流 #
93665次浏览 678人参与
# 校招求职有谈薪空间吗 #
173009次浏览 2186人参与
# 腾讯音乐求职进展汇总 #
130762次浏览 990人参与
# 毕业季,你想好怎么跟生活对线了吗? #
249021次浏览 3821人参与
# 找工作前vs找工作后的心路变化 #
24396次浏览 206人参与
# 荣耀求职进展汇总 #
956101次浏览 5032人参与