线性表是零个或者多个数据元素的有限序列。
特性:
数据元素之间是有顺序的.
数据元素个数是有限的.
数据元素的类型必须相同.
数学定义:
线性表是具有相同类型的 n( ≥ 0)个数据元素的有限序列(a0,a1, a2, …, an)
ai是表项,n 是表长度。
性质:
a0为线性表的第一个元素,只有一个后继。
an为线性表的最后一个元素,只有一个前驱。
除a0和an外的其它元素ai,既有前驱,又有后继。
线性表能够逐项访问和顺序存取。
线性表的操作:
创建线性表
销毁线性表
清空线性表
将元素插入线性表
将元素从线性表中删除
获取线性表中某个位置的元素
获取线性表的长度
线性表的顺序存储:
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
插入元素算法:
判断线性表是否合法
判断插入位置是否合法
把最后一个元素到插入位置的元素后移一个位置
将新元素插入
线性表长度加1
获取元素操作:
判断线性表是否合法
判断位置是否合法
直接通过数组下标的方式获取元素
删除元素算法:
判断线性表是否合法
判断删除位置是否合法
将元素取出
将删除位置后的元素分别向前移动一个位置
线性表长度减1
链表的容量和链表的长度是两个不同的概念
优点:
无需为线性表中的逻辑关系增加额外的空间。
可以快速的获取表中合法位置的元素。
缺点:
插入和删除操作需要移动大量元素。
当线性表长度变化较大的时候,难以确定存储空间的容量。