图解数组和链表

有时候需要在内存中存储一系列元素。
比如待办事项,用数组还是链表呢?

数组意味着所有待办事项在内存中都是相连的(紧靠在一起的)。

链表中的元素可以存储在内存

链表的每个元素都存储了下一个元素的地址,从而使得一系列的随机的内存地址串在了一起。

只要有足够的内存空间,就能为链表分配内存。

数组的优势

当同时读取所有元素时,链表的效率很高,读第一个,读第二个,以此类推。
但当你需要跳跃,链表的效率就很低了。

数组,则很方便读取每一个元素的内容。因为知道第一个,就知道了所有的地址。它们是连在一起的。

数组和链表操作的时间复杂度

插入多,读取少。用链表。
插入少,读取多。用数组。

在中间插入数据,哪个更好呢

链表更方便一些,只需要修改它前面的那个元素指向的地址就可以了。

使用数组时,必须将后面的元素都向后移动。如果空间不足,还要重新复制新的空间。

删除数据,哪个更好呢

也是链表更好一些。
只需要将前一个元素指向的地址更改即可。
使用数组,则必须将后面的元素都向前移动。

但是实际的应用中,数组用的更多一些。因为它支持随机读取。

posted @   TBHacker  阅读(11001)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2016-09-30 Javascript中的with用法
2016-09-30 计算机经典书籍
2013-09-30 一牛逼博主的博文
2013-09-30 svn由于连接方在一段时间后没有正确答复或连接的主机没有反应连接尝试失败
点击右上角即可分享
微信分享提示