Array与List(数组和链表)的区别及其优缺点

Posted 程序猿是小贺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Array与List(数组和链表)的区别及其优缺点相关的知识,希望对你有一定的参考价值。

Array与List(数组和链表)的区别及其优缺点

数组优点

  1. 元素存储时在物理上(内存)是连续的。
  2. 由于数组连续,可以通过下标进行直接访问数据。
  3. 查找效率为O(1)。

数组缺点

  1. 数据插入和删除时效率低下,该数据后面的元素都需要后移或者前移。
  2. 数组需要预留空间,可能会造成内存浪费。
  3. 要定义数组首先要有一段足够长的连续空间
  4. 并且数组大小是固定的,不支持动态的扩展,要是空间不足则需要重新开辟更大的数组。

链表优点

  1. 链表的元素在物理(内存)上不连续,在逻辑上连续(是通过指针联系在一起)的。
  2. 链表的插入和删除操作非常方便,改变指针即可。
  3. 不需要连续的内存空间,内存利用率高,而且不需要指定链表的大小。

链表缺点

  1. 不支持随机查找,必须要从第一个开始遍历,查找效率低。

以上是关于Array与List(数组和链表)的区别及其优缺点的主要内容,如果未能解决你的问题,请参考以下文章

Array与List(数组和链表)的区别及其优缺点

Array与List(数组和链表)的区别及其优缺点

Array与List(数组和链表)的区别及其优缺点

C中线性表和链表的区别

C++ 有没有结合了数组和链表优点的容器?

C中线性表和链表的区别