数据结构-线性表-顺序表

241 阅读2分钟

存储结构:数据结计算机中的表示,包括数据元素的表示和关系表示
线性表在计算机中的存储结构分为两种:顺序存储结构以及链式存储结构

顺序存储结构--顺序表

按照逻辑次序一次存放在一组地址连续的存储单元里,借助元素在存储器中的相对位置来表达数据元素之间的逻辑关系 image.png

  • C语言实现 数组可以分配一组连续的存储空间
    image.png

  • 元素地址计算

loc(ai) = loc(a1) + (i-1)*len
线性表的每个元素类型是相同的,所以元素所占位置长度也相同

  • 常用算法
  1. 插入

无序顺序表插入

  • 入口判断:是否满足n < MAXSIZE和 i >= 1 && i <= n+1
  • 元素ai-an后移
  • 在线性表i处插入新元素
  • 表长加1 具体算法实现
    image.png

算法分析
算法的执行时间和元素的移动次数有关,移动次数与元素的插入位置相关
image.png
如果在任意处插入一个元素都是等概率的,那么平均下来要移动表长的一半节点,因此算法的平均时间复杂度 T(n) =O(n)
所以在无序线性表中插入时,最好在表尾插入

有序顺序表插入

image.png 算法实现
image.png

  1. 删除
  • 入口判断:是否满足n== 0或者i<1 || i > n
  • 将第i个元素的值放入x
  • 元素ai+1-an前移
  • 表长-1 算法实现
    image.png
    算法分析
    如果在任意删除入一个元素都是等概率的,那么平均下来要移动表长的一半节点,因此算法的平均时间复杂度 T(n) =O(n)
  1. 查找
  2. 排序