数组简介
数组(Array)是基本数据结构,对应一串连续的内存(a sequence of consecutive cells in memory),下图就是数组的样子:
以上图为例, 数组下标从 0 开始到 n-1(n=7)结束。如果要选取数组中的元素,由数组名称+[数组下标(index)]。
例如:A[0] 表示第一个元素6.
数组的优点:
1.内存空间占用少
2.定位,存储,读取速度快(Locating a data, and storing or retrieving data at that Array is very fast)
数组的缺点:
1.插入删除效率低:每次插入一个数据,都需要把插入位置之后的所有数据,全部向后面移动一个单位。删除同理。
特殊情况:如果只是对数组最后一个数据进行插入和删除效率会比较高。
2.大小固定,再创建数组的时候必须声明数组的大小。不适合对有大小变动的数据进行存储。
链表简介
链表(Linked List)是另外一个基本数据结构,对应不连续的存储结构,链表中数据的逻辑顺序是通过链表中的指针链接次序实现的。 下图的就是链表的样子:
结点:分成两部分,前面存放的是需要存储的数据,后面存放的是下一个数据的存储位置。
指针:有一个头指针指向链表头部第一个数据,最后一个数据的尾部为空(null)
下图是链表中一些表示术语:
X此时为头部指针,X.val 代表着头部指针所指向的数据的值。以上图为例X.val = 2
X.next 代表着指向下一个数据的访问地址的指针,如上图所示。