数组和链表的比较

数组:数组是将元素在内存中连续存放,由于每个元素占用的内存相同,可以通过下标迅速访问数组中的任何元素,但是增加或者删除一个元素,就需要移动大量的元素,比较缓慢。

链表:链表中的元素在内存中不是顺序存储的,而是通过指针存在一起,每个节点包括两个部分,存储元素的数据域与存储下一结点地址的指针域

如果访问链表中元素,需要从第一个元素开始,一直找到需要的元素的位置,所以缓慢。但是增加删除元素,只需要修改指针就可以,速度较快。

区别:

(1)存储位置:

数组逻辑上相邻的元素在物理存储位置上也相邻,而链表不一定;

(2)存储空间:

链表存放的内存空间可以是连续的,也可以不连续,但是数组则是连续的一段存储空间;

(3)长度的可变性:

链表的长度可变,数组不可变

(4)访问方式:

数组可以随机访问其中元素,链表必须顺序访问。

优缺点:

1)数组

优点:使用方便,查询效率高,内存为一连续区域

缺点:大小固定,不适合动态存储,不方便动态添加。

2)链表

优点:可动态添加删除,大小可变

缺点:查询效率低。

你可能感兴趣的