初始化(分配空间;赋初值)
销毁线性表
线性表置空/清空线性表
求表长
判断线性表是否为空
线性表的按值查找算法
查找算法的算法分析
查找算法的基本操作:将记录的关键字同给定值进行比较(L.elem==e)
比较的次数与输入的定值e有关(假设7个数字出现的概率均为1/7)
当e=a,1次;当e=b,2次;当e=c,3次;…e=g,7次
平均比较次数(1+2+3+…+7)/7=4
在查找时,为确定元素在顺序表中的位置,需和给定值进行比较的数据元素个数的期望值称为查找算法在查找成功时的平均查找长度(AverageSearch Length, ASL)。
插入算法
(在线性表a3位置之前插入一个新元素e(e=6))
插入位置在最后在线性表的最后添加一个元素不需要移动直接添加
插入位置在最前在原线性表的第1个元素之前插入一个新的元素,线性表的所有元素都要移动移动次数最多
插入位置中间如上例
插入算法的算法分析
删除操作
①判断删除位置i是否合法(合法值为1≤i≤n)
②将欲删除的元素保留在e当中
③将第i+l个至第n个的元素依次向前移动一个位置(i= n时无需移动)
④表长减1
删除算法分析
线性表的小结
查找、插入、删除的平均算法复杂度为O(n)
空间复杂度显然顺序表操作没有占用辅助空间算法的空间复杂度O(1)
线性表的优缺点
- 优点
存储密度大(结点本身所占用的空间/结点结构所占存储量=1)无需为表示表中元素之间的逻辑关系,而增加额外的存储空间
可以随机存取表中任意位置的元素
- 缺点
插入、删除某一元素需移动大量元素
(结点本身所占用的空间/结点结构所占存储量=1)无需为表示表中元素之间的逻辑关系,而增加额外的存储空间
可以随机存取表中任意位置的元素
- 缺点
插入、删除某一元素需移动大量元素
当线性表长度变化较大时,难以确定存储空间的容量,数据元素的个数不能自由扩充(存储空间不灵活)