目录

1 绪论

1.1.1 数据结构的基本概念

1.2.1 算法的基本概念

1.2.2 时间复杂度

1.2.3 空间复杂度

2 线性表

2.1 线性表的定义和基本操作

2.2 顺序表

2.2.1 顺序表的定义

2.2.2 顺序表上基本操作的实现

2.3 链表

2.3.1 单链表的定义

2.3.2 单链表上基本操作的实现

2.3.3 双链表

2.3.4 循环链表

2.3.5 静态链表

2.3.6 顺序表与链表的比较

2.4 总结


1 绪论

1.1.1 数据结构的基本概念

1.2.1 算法的基本概念

1.2.2 时间复杂度

【2】线性表 - 王道考研

1.2.3 空间复杂度

【2】线性表 - 王道考研

2 线性表

2.1 线性表的定义和基本操作

【2】线性表 - 王道考研

2.2 顺序表

2.2.1 顺序表的定义

  • 注意区分顺序表与数组的下标

【2】线性表 - 王道考研

  • 动态分配和静态分配都是分配连续空间

【2】线性表 - 王道考研

2.2.2 顺序表上基本操作的实现

  • 插入

    • 一般使用 前插法 
    • 将插入位置之后的元素向后平移一位
    • 时间复杂度 O(n)
    • 【2】线性表 - 王道考研
  • 删除

    • 将删除位置之后的元素依次往前平移一位
    • 时间复杂度 O(n)
    • 【2】线性表 - 王道考研
  • 查找

    • 【2】线性表 - 王道考研

2.3 链表

2.3.1 单链表的定义

  •  每个元素:data 和 指针域

【2】线性表 - 王道考研

  • 引入头节点,有两个优点:
     
    • 第一个位置和其他位置操作的天涯
    • 空表和非空表操作的统一(例如判断是否为空表)

【2】线性表 - 王道考研

 

2.3.2 单链表上基本操作的实现

  • 建立
    • 头插法 O(n)
      • 【2】线性表 - 王道考研
      • 【2】线性表 - 王道考研
    • 尾插法
      • 【2】线性表 - 王道考研
      • 【2】线性表 - 王道考研
  • 查找
    • 按序号查找 & 按值查找
    • 【2】线性表 - 王道考研
  • 插入
    • 前插法 O(n)
      • 先查找
      • 再修改(修改的顺序不能反)
      • 【2】线性表 - 王道考研
    • 后插法 O(1)
      • 直接在给定位置插入元素即可(不需要查找)
      • 【2】线性表 - 王道考研
      • 可以使用 后插法 实现 前插法
        • 先使用后插法插入元素,然后交换两元素位置
        • 【2】线性表 - 王道考研
  • 删除
    • 给定下标
      • 【2】线性表 - 王道考研
    • 给定节点地址
      • 普通:先查找,再删除 O(n)
      • 加速:先交换,后删除 O(1)
      • 【2】线性表 - 王道考研
  • 求表长
    • 【2】线性表 - 王道考研
    • 加入头节点的另一个好处:空表和非空表操作的统一(例如判断是否为空表)
    • 【2】线性表 - 王道考研

2.3.3 双链表

  • 定义
    • 【2】线性表 - 王道考研
    • 特点:引入了前驱指针(prior *)
    • 注意:双链表没有尾节点,因此操作不是统一的
  • 插入 O(1)
    • 【2】线性表 - 王道考研
  • 删除 O(1)
    • 【2】线性表 - 王道考研

 

2.3.4 循环链表

循环单链表

【2】线性表 - 王道考研

循环双链表

【2】线性表 - 王道考研

2.3.5 静态链表

  • 定义:
    • 用数组实现链表结构
    • next存的是下一个节点的下标
    • -1表示是最后一个节点
    • 静态链表不能动态扩展
    • 适用于没有指针的语言
    • 【2】线性表 - 王道考研

 

 

2.3.6 顺序表与链表的比较

  • 存取方式:
  • 逻辑结构和物理结构

【2】线性表 - 王道考研

  • 基本操作 -- 时间复杂度

【2】线性表 - 王道考研

【2】线性表 - 王道考研

  • 内存空间

【2】线性表 - 王道考研

  • 怎么选择

【2】线性表 - 王道考研

  • 三个常用操作,分别选择什么数据结构
    • 最值 - 遍历 【时间 O(n)】
    • 逆序 - 对换位置
顺序表【时间O(n)空间O(1)】 链表【时间O(n) 空间 O(1)】
【2】线性表 - 王道考研 【2】线性表 - 王道考研

 

  • 归并
顺序表【时间O(n+m) 空间O(n+m)】 链表【时间O(n) 空间 O(1) 或 O(0)(不创建新链表)】
【2】线性表 - 王道考研 【2】线性表 - 王道考研

 

2.4 总结

【2】线性表 - 王道考研

相关文章:

  • 2021-09-23
  • 2021-11-26
  • 2021-07-04
  • 2021-08-10
  • 2021-04-18
  • 2022-01-13
  • 2021-11-13
  • 2021-07-14
猜你喜欢
  • 2021-04-23
  • 2022-12-23
  • 2021-04-01
  • 2021-08-26
  • 2022-12-23
  • 2021-05-28
  • 2021-12-09
相关资源
相似解决方案