数据存储分很多种。学完 C语言之后,我们至少可以通过两种结构来存储数据,一种是“数组”,另一种是“链表”。那么为什么有了数组之后,,还要学习“链表”呢?因为数组有缺陷,数组是连续的,“连续”本身就是优点也是缺点。
数组的缺陷
第一:
因为他是连续的,所以在内存中他需要一整块连续的空间。如果存储的数据少的话,那还可以。如果是大数据,那么系统就必须要连续提供很多字节,连续,空闲的内存空间。如果找不到,就分配不成功。
第二:
虽然数组存取速度很快,但是数组的插入和删除数据的效率是非常低的,因为数组是连续的,所以如果要插入一个元素,那么插入点后所有的元素都要往后移动;而如果要删除一个元素,所删除的元素后面所有的元素都要往后移动,导致效率很低。
第三:
用数组存放数据时,必须事先定义固定的长度。
链表的优点
1 链表不需要连续地分配内存空间,每一个元素之间不是连续而是分开的,所以不需要很大的内存空间。
2 使用链表,插入和删除数据效率很高。
3 链表可以根据需要分配开辟内存空间,不需要像数组那样预先指定所要指定分配的内存空间的长度,而是