定义:
一个线性表是由同类型数据元素构成的有限序列
一般地,当表示一个由n(n>=0)个元素组成的线性表L时,将线性表中的所有元素列在一对括号中,每个元素之间以逗号分隔,如
L=(a0,a1,....,an-1)
不搞的像数据那么麻烦了,按我理解的来
表项:线性表中的数据元素
表头元素:线性表的第一个元素
表尾元素:线性表的最后一个元素
表长:线性表中的元素个数
空表:表中无元素
直接前驱:当前元素的前一个元素(表头没有前驱)
直接后继:当前元素的后一个元素(表尾没有后继)
不得不说,起的名是真花,飞机上挂暖瓶-高水平呀,自愧不如
线性表分为有序表和无序表
特点:
- 各元素属于同一个类型
- 元素个数有限的
- 各元素之间不一定有大小关系,但一定有次序关系
顺序表(Java中的ArrayList)
顺序存储的基本思想:使用一组连续的存储单元依次存储各个元素
特点:数组是内存中一片连续的空间,相邻的两个单元在内存中的实际地址也是相邻的,线性表中逻辑上相邻的两个元素,其存储地址也是相邻的
优势:使用顺序存储结构保存线性表非常方便,因为可以通过下标来访问数组元素,即可以实现对表中元素的随机访问,这是顺序存储结构的。
不足:在顺序表中实现插入和删除时,可能需要移动元素。如果插入和删除的位置靠近表头位置,则移动的元素个数偏多。当有频繁的插入、删除操作时,元素的移动也会很频繁,操作效率较低。有可能会因为表中元素个数过多而导致数据空间不足,也可能会因为表中元素个数较少而导致数组中的很多位置是空置的。
线性表的空间复杂度和移动次数还没看懂,等俺看懂了,再给大家解释,敬请期待!!!