关键知识点

  1. 数据结构的三要素:逻辑结构,数据的运算,存储结构(物理结构)
  2. 线性表名称的理解: To Do list Linear Line Sky baby 天线宝宝
  3. 初始化线性表和销毁线性表完成了它从出生到死亡的过程
  4. 将对数据类型进行的操作理解为函数中参数传递以及参数的意义
  5. 对数据结构的操作(记忆思路): --- 创销,增删改查;
  6. 改操作的第一步也是查询
  7. 求表长,输出操作,判空操作都是为了编程方便而产生的操作
  8. 数据结构的操作具有很高的抽象性,体现在没有限定参数的数据类型(可以将其看作为一个个接口)
  9. &取地址运算符用于函数之间传递参数,在子函数调用主函数同名变量,两个变量之间的关系是引用

主函数与子函数之间变量的调用

&取地址符号用于函数之间传递参数.png

线性表的插入操作

线性表的插入操作.png

插入操作的算法复杂度分析

分析问题的逻辑

算法复杂度分为了最好,最坏,平均三种情况;

其次算法研究的对象是程序中最深层次循环语句的执行次数与问题规模n之间的关系;

具体分析

最好情况:末尾插入,无需移动其他任何元素,复杂度最低,i = n + 1,循环零次,最好时间复杂度 O(1)

最坏情况:从头部插入,需要移动原有的所有元素,复杂度最高,最坏时间复杂度:O(n);

平均情况: 假设新元素插入到任何位置的概率相同,即 i = 1,2,3, … , length + 1的概率都是 p = 1 / (n + 1)