数据结构:数组与链表的区别

  1. 内存存储 方面:数组是连续的,链表是分散的;
  2. 是否预留额外空间 方面:数组需要使用前申请内存大小,链表对每个数据项都保存了下一个数据的内存地址;
  3. 访问方式 方面:数组支持随机访问,链表只能顺序访问;
  4. 增加、删除 方面:数组待增加、删除的节点后面的元素需要依次移动,效率低;链表只需要改变节点中的“指针”,局部数据改写就可以了,效率更高。
  5. 操作系统内存管理 方面:内存管理会将连续的存储空间提前读入缓存(局部性原理),所以数组往往会被读入缓存中,进一步提高了访问效率;链表由于内存分布式分散的,往往不会读入到缓存中,其访问效率本来就低,这样就变得更低了。
  6. 实际应用 方面:链表带来的动态扩容的便利性,在作为算法的容器方面,用的更普遍一点。
2

参考链接:https://zhuanlan.zhihu.com/p/52440208

posted @ 2021-09-29 14:55  aguo718  阅读(378)  评论(0编辑  收藏  举报