本文原创,版权属作者个人所有,如需转载请联系作者本人。Q&微:155122733

--------------------------------------------------------------------------------------------------------
数组和链表的区别整理如下:

1 数组静态分配内存,链表动态分配内存;

  数组在使用前需要固定大小,如果太小,会导致数组越界;如果太大,会造成内存资源浪费;而链表则能够动态分配内存,实现用多少申请多少;

2 数组在内存中连续,链表不连续;

3 数组元素在栈区,链表元素在堆区;

4 数组使用完后系统自动释放空间,链表使用完后需要人为通过free释放空间;

5 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);

  数组定位元素时可以根据下标直接定位,而链表则需要遍历,因此在定位元素时,数组优于链表;

6 数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。

  数组在插入删除元素时,需要线性移动;而链表则可以自由插入删除元素,在插入删除元素方面,链表优于数组