存储结构:数据结计算机中的表示,包括数据元素的表示和关系表示
线性表在计算机中的存储结构分为两种:顺序存储结构以及链式存储结构
顺序存储结构--顺序表
按照逻辑次序一次存放在一组地址连续的存储单元里,借助元素在存储器中的相对位置来表达数据元素之间的逻辑关系
-
C语言实现 数组可以分配一组连续的存储空间
-
元素地址计算
loc(ai) = loc(a1) + (i-1)*len
线性表的每个元素类型是相同的,所以元素所占位置长度也相同
- 常用算法
- 插入
无序顺序表插入
- 入口判断:是否满足n < MAXSIZE和 i >= 1 && i <= n+1
- 元素ai-an后移
- 在线性表i处插入新元素
- 表长加1 具体算法实现
算法分析
算法的执行时间和元素的移动次数有关,移动次数与元素的插入位置相关
如果在任意处插入一个元素都是等概率的,那么平均下来要移动表长的一半节点,因此算法的平均时间复杂度 T(n) =O(n)
所以在无序线性表中插入时,最好在表尾插入
有序顺序表插入
算法实现
- 删除
- 入口判断:是否满足n== 0或者i<1 || i > n
- 将第i个元素的值放入x
- 元素ai+1-an前移
- 表长-1 算法实现
算法分析
如果在任意删除入一个元素都是等概率的,那么平均下来要移动表长的一半节点,因此算法的平均时间复杂度 T(n) =O(n)
- 查找
- 排序