本文原创,版权属作者个人所有,如需转载请联系作者本人。Q&微:155122733
--------------------------------------------------------------------------------------------------------数组和链表的区别整理如下:
1 数组静态分配内存,链表动态分配内存;
数组在使用前需要固定大小,如果太小,会导致数组越界;如果太大,会造成内存资源浪费;而链表则能够动态分配内存,实现用多少申请多少;
2 数组在内存中连续,链表不连续;
3 数组元素在栈区,链表元素在堆区;
4 数组使用完后系统自动释放空间,链表使用完后需要人为通过free释放空间;
5 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);
数组定位元素时可以根据下标直接定位,而链表则需要遍历,因此在定位元素时,数组优于链表;
6 数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。
数组在插入删除元素时,需要线性移动;而链表则可以自由插入删除元素,在插入删除元素方面,链表优于数组