数据结构

余鑫

目录

  • 1 第1讲 绪论
    • 1.1 数据结构概述 (2小节)
      • 1.1.1 数据结构的基本概念
      • 1.1.2 抽象数据类型
    • 1.2 算法概述(2小节)
      • 1.2.1 算法的定义及性能分析(上)
      • 1.2.2 算法的定义及性能分析(下)
  • 2 第2讲 线性表(上) -顺序表
    • 2.1 案例引入- 手机通讯录系统的设计与实现
    • 2.2 理论基础- 线性表及顺序存储
    • 2.3 解决方案(4小节)
      • 2.3.1 通讯录顺序表的定义及初始化
      • 2.3.2 通讯录顺序表的插入操作
      • 2.3.3 通讯录顺序表的删除操作
      • 2.3.4 通讯录顺序表的其他操作
    • 2.4 编程实现-手机通讯录顺序结构及相关操作的设计与实现
  • 3 第3讲 线性表(下) -单链表
    • 3.1 案例引入-手机通讯录系统的设计与实现
    • 3.2 理论基础- 单链表的基本概念
    • 3.3 解决方案(4小节)
      • 3.3.1 头插法建通讯录单链表
      • 3.3.2 尾插法建通讯录单链表
      • 3.3.3 通讯录单链表的插入及删除操作
      • 3.3.4 通讯录单链表的其他操作
    • 3.4 编程实现-手机通讯录链式结构及相关操作的设计与实现
  • 4 第4讲 栈
    • 4.1 案例引入-手机计算器的简单表达式求值问题
    • 4.2 理论基础(4小节)
      • 4.2.1 栈的基本概念
      • 4.2.2 栈的顺序存储及操作
      • 4.2.3 栈的链式存储及操作
      • 4.2.4 栈与递归
    • 4.3 解决方案(2小节)
      • 4.3.1 简单表达式求值的过程分析
      • 4.3.2 简单表达式求值的算法分析
    • 4.4 编程实现-手机计算器的简单表达式求值的设计与实现
  • 5 第5讲 队列-循环队列
    • 5.1 案例引入 -银行排队叫号问题
    • 5.2 理论基础(2小节)
      • 5.2.1 队列的基本概念
      • 5.2.2 队列的顺序存储
    • 5.3 解决方案-基于循环队列的银行排队叫号过程的处理
    • 5.4 编程实现-基于循环队列的银行排队叫号问题的设计与实现
  • 6 第6讲 队列-链队列
    • 6.1 案例引入-银行排队叫号问题
    • 6.2 理论基础- 队列的链式存储
    • 6.3 解决方案- 基于链队列的银行排队叫号过程的处理
    • 6.4 编程实现-基于链队列的银行排队叫号问题的设计与实现
  • 7 第7讲 串、数组和广义表
    • 7.1 案例引入-文本处理问题研究
    • 7.2 理论基础(4小节)
      • 7.2.1 数组与特殊矩阵
      • 7.2.2 稀疏矩阵
      • 7.2.3 广义表
      • 7.2.4 串的基本概念与存储
    • 7.3 解决方案(3小节)
      • 7.3.1 串的模式匹配-BF算法
      • 7.3.2 串的模式匹配-KMP算法演示
      • 7.3.3 串的模式匹配-KMP算法分析
    • 7.4 编程实现-基于顺序串的文本处理问题的设计与实现
  • 8 第8讲 树和二叉树
    • 8.1 案例引入-哈夫曼编码
    • 8.2 理论基础 (14小节)
      • 8.2.1 树的基本概念
      • 8.2.2 树的存储与遍历
      • 8.2.3 二叉树的基本概念
      • 8.2.4 二叉树的基本性质
      • 8.2.5 二叉树的存储结构
      • 8.2.6 二叉树的先序遍历
      • 8.2.7 二叉树的中序遍历
      • 8.2.8 二叉树的后序层次遍历
      • 8.2.9 树与二叉树的转换
      • 8.2.10 二叉树的基本运算及实现(上)
      • 8.2.11 二叉树的基本运算及实现(中)
      • 8.2.12 二叉树的基本运算及实现(下)
      • 8.2.13 由遍历序列构造二叉树
      • 8.2.14 哈夫曼树
    • 8.3 解决方案(4小节)
      • 8.3.1 哈夫曼编码的案例分析
      • 8.3.2 构造哈夫曼树的算法分析(上)
      • 8.3.3 构造哈夫曼树的算法分析(下)
      • 8.3.4 哈夫曼编码算法分析
    • 8.4 编程实现-哈夫曼编码和译码的设计与实现
  • 9 第9讲 图-图的定义及存储
    • 9.1 案例引入-公园导游系统与景点介绍问题
    • 9.2 基础理论(3小节)
      • 9.2.1 图的基本概念
      • 9.2.2 图的存储-邻接矩阵
      • 9.2.3 图的存储-邻接表
    • 9.3 解决方案- 基于邻接矩阵的公园导览图存储
    • 9.4 编程实现-公园导览图的存储与实现
  • 10 第10讲 图 -图的遍历
    • 10.1 案例引入-公园导游系统与游览线路问题
    • 10.2 理论基础(3小节)
      • 10.2.1 图的遍历-深度优先(2小节)
      • 10.2.2 图的遍历-广度优先
    • 10.3 解决方案-  基于深度优先遍历的公园图遍历
    • 10.4 编程实现-公园导游系统游览线路的规划与实现
  • 11 第11讲 图 -最短路径
    • 11.1 案例引入-公园导游系统与景点间最短路径问题
    • 11.2 理论基础(3小节)
      • 11.2.1 最短路径概念
      • 11.2.2 最短路径-狄杰斯特拉算法
      • 11.2.3 最短路径-弗洛伊德算法
    • 11.3 解决方案-  基于狄杰斯特拉算法的公园两景点间的最短路径
    • 11.4 编程实现-公园两景点之间的最短路径的计算与实现
  • 12 第12讲 图-最小生成树
    • 12.1 案例引入-公园导游系统与管道修建问题
    • 12.2 理论基础(3小节)
      • 12.2.1 最小生成树的概念
      • 12.2.2 最小生成树-普里姆算法
      • 12.2.3 最小生成树-克鲁斯卡尔算法
    • 12.3 解决方案- 基于普里姆算法的公园管道修建方案
    • 12.4 编程实现-公园管道修建方案的设计与实现
  • 13 第13讲 查找
    • 13.1 案例引入-手机通讯录的检索系统
    • 13.2 理论基础(8小节)
      • 13.2.1 查找的基本概念
      • 13.2.2 线性表查找-二分查找
      • 13.2.3 线性表查找-分块查找
      • 13.2.4 树表查找-二叉查找树
      • 13.2.5 树表查找-平衡二叉树
      • 13.2.6 哈希表查找-哈希表的基本概念
      • 13.2.7 哈希表查找-构造哈希函数
      • 13.2.8 哈希表查找-解决哈希冲突
    • 13.3 解决方案- 手机通讯录的查找操作(2小节)
    • 13.4 编程实现-手机通讯录检索程序的设计与实现
  • 14 第14讲 内排序
    • 14.1 案例引入-手机通讯录的排序问题
    • 14.2 基础理论(6小节)
      • 14.2.1 内排序的基本概念
      • 14.2.2 交换类排序
      • 14.2.3 插入类排序
      • 14.2.4 选择类排序
      • 14.2.5 归并排序
      • 14.2.6 基数排序
    • 14.3 解决方案- 手机通讯录的排序操作
    • 14.4 编程实现-手机通讯录的排序设计与实现
  • 15 (附)算法动画演示  (36个)
    • 15.1 顺序表插入
    • 15.2 顺序表删除
    • 15.3 顺序查找
    • 15.4 单链表插入
    • 15.5 头插法建链表
    • 15.6 尾插法建链表
    • 15.7 顺序队列
    • 15.8 循环队列
    • 15.9 顺序栈
    • 15.10 栈与递归
    • 15.11 双栈
    • 15.12 二叉树的建立
    • 15.13 树到二叉树的转换
    • 15.14 中序线索化二叉树
    • 15.15 构造哈夫曼树的过程
    • 15.16 构造哈夫曼树的算法模拟
    • 15.17 寻找中序二叉树指定结点的后继
    • 15.18 寻找中序二叉树指定结点的前趋
    • 15.19 邻接表表示的深度搜索
    • 15.20 邻接表表示的图的广度优先遍历
    • 15.21 克鲁斯卡尔算法
    • 15.22 拓扑排序
    • 15.23 插入排序
    • 15.24 二分查找
    • 15.25 分块查找
    • 15.26 开放地址散列
    • 15.27 拉链法散列
    • 15.28 顺序查找
    • 15.29 二叉排序树的生成
    • 15.30 二叉排序树的删除
    • 15.31 StraightSelectionSort
    • 15.32 归并排序
    • 15.33 基数排序
    • 15.34 快速排序
    • 15.35 希尔排序
    • 15.36 冒泡排序
解决方案-  基于深度优先遍历的公园图遍历
  • 1 教学视频
  • 2 讨论10.3
  • 3 课件10.3