数组和链表相同点:都是存储地址的存储空间。
数组
图片来自《算法图解》定义:将所有代办事项在内存中都是相连的(紧靠在一起)。
优点:查找速度快。(每个元素都对应一个下标)
缺点:请求位置太多,浪费内存。 请求位置太少,就得转移内存。
链表
图片来自《算法图解》定义:链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。
优点:插入数据快。(每个元素都知道下一个元素的内存地址,只需要修改它前面那个元素执向的地址)
缺点:查找速度慢。(不能跳跃式查找)
删除
链表是更好的选择。因为只需修改前一个元素的执向地址。而使用数组时,删除元素后,必须将后面的元素都向前移。
图片来自《算法图解》如果还有朋友不太理解。我再用个形象的例子来说明下。
我们去银行排队取钱,就是数组。一个挨着一个的站。
我们去银行排号取钱,就是链表。我们只有知道上一位,才能知道下一次是谁。
PS:
如果你阅读之后,有所收获。请记得点赞哦。o(* ̄︶ ̄*)o。你的支持将是我写作的动力。
网友评论