数组和链表的区别:

数组和链表都是最基本的数据结构,它们在内存存储是不一样的,所以各自有各自的特点。

数组:

 数组的特点

   数组是将元素在内存中来连续存放,由于每个元素占用内存空间相同,可以通过下标快速访问数组中任意元素,但是数组的插入和删除效率低,插入数据时当前位置后面的数据在内存中都要向后移,删除数据时当前位置数据往前移。但是数组的随机读取效率高,因为数组是连续的知道每一个数组的内存地址,可以直接找到对应地址的数据。如果应用需要快速访问数据,数组元素很少或者不插入和不删除元素,就应该使用数组。数组需要预留空间,在使用前先申请占用内存的大小,可能会浪费内存空间,并且数组不利于扩展,数组定义的空间不够时需要重新定义数组。

 数组的优点

  • 随机访问性强
  • 查找速度快

 数组的缺点

  • 插入和删除效率低
  • 存在可能浪费内存空间
  • 内存空间要求高,必须有足够的连续的内存空间
  • 数组大小固定,不能动态扩展

 

链表:

 链表的特点

  链表中元素在内存中不是顺序存储的,而通过存在元素中的指针联系到一起。比如:上一个元素有指针指向到下一个元素,由此类推直到最后一个元素,如果访问链表中一个元素,需要从第一个元素开始,一直找到需要的元素位置。但是增加和删除一个元素,需要从第一个元素开始,一直找到需要的元素的位置。但是增加和删除元素对于链表数据结构简单了,只需要修改所对应的元素中的指针就可以了。如果应用需要经常插入和删除元素就需要使用链表数据结构。不指定大小,扩展方便。链表大小不用定义,数据随意删除。

 链表的优点

  • 插入删除速度快;
  • 内存利用率高,不会浪费内存;
  • 大小没有固定,扩展灵活;

 链表的缺点

  • 不能随机查找,必须从第一个开始遍历,查询效率低。
posted @   帅呆了的帅哥哥  阅读(339)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示