线性表:零个或多个数据元素的有限序列。
线性结构:数据元素存在一对一的关系,前驱后继。
物理存储逻辑:
1,顺序存储结构,一段连续的空间存储数据元素。
2,链式存储结构,不连续的存储空间,每个数据保持前后数据的引用。
线性表特征:
1, 唯一第一个数据元素
2, 唯一结尾数据元素
3, 除第一个元素都存在前驱数据
4,除最后一个元素都存在后继数据
在Java中ArrayList就属于顺序存储结构
1, 内部使用数组存储数据
2,以ArrayList为列,不指定长度,默认创建长度为10的数组。
3,get(int i)直接返回数组object[i]
4, add(index,obejct) 添加元素时,将index位置后的元素向后移动,将object赋值到index,删除时反转。
5,clear(),将所有元素置为null,size =0;
链式存储结构在Java中LinkedList属于链式存储结构
1,内部维护Node节点类,存储prev和next元素引用
2,无元素时,header节点为null
3,get(i),遍历元素,i>size/2,next从后遍历,i < size,prev引用向前遍历,直到index==i返回元素。
4,add(index,object),将前一个元素next引用指向添加元素,自身prev引用指向前一个元素,next引用指向后一个元素,后一个元素prev指向添加元素。
5,clear(),header置为null,尾部元素置为null,size=0
代码可直接查看ArrayList和LinkedList源码
参考资料:
《大话数据结构》