数据结构2023-2024(1)学期

数据结构课程组

目录

  • 1 “数据结构”课程介绍及线上学习指南
    • 1.1 “数据结构”课程介绍及线上学习指南
  • 2 预备知识
    • 2.1 结构体类型的定义及结构体变量的使用方式
    • 2.2 动态空间的申请和释放
    • 2.3 new和delete的使用
    • 2.4 c++中参数传递问题
    • 2.5 指针的定义
    • 2.6 指针和一维数组
    • 2.7 指针使用中容易出错的情况
  • 3 绪论
    • 3.1 什么是数据结构
      • 3.1.1 关于数据组织-例:图书摆放
      • 3.1.2 讨论3.1
      • 3.1.3 关于空间使用-例:PrintN函数实现
      • 3.1.4 关于算法效率-例:计算多项式值
      • 3.1.5 抽象数据类型
    • 3.2 基本概念和术语
    • 3.3 算法和算法分析
    • 3.4 本章小结
    • 3.5 作业讲解
    • 3.6 单元测试
    • 3.7 竞赛拓展
  • 4 线性表
    • 4.1 线性表的定义和特点
    • 4.2 线性表的顺序表示和实现
    • 4.3 线性表的链式表示和实现
    • 4.4 顺序表和链表的比较
    • 4.5 线性表的应用
    • 4.6 本章小结
    • 4.7 作业讲解
    • 4.8 单元测试
    • 4.9 竞赛拓展
      • 4.9.1 多项式加法运算
      • 4.9.2 多项式乘法运算
  • 5 栈和队列
    • 5.1 栈的定义和特点
    • 5.2 栈的表示和操作的实现
    • 5.3 栈与递归
    • 5.4 队列的表示和操作的实现
    • 5.5 本章小结
    • 5.6 作业讲解
    • 5.7 单元测试
  • 6 串、数组
    • 6.1 串
    • 6.2 数组
    • 6.3 本章小结
    • 6.4 作业讲解
  • 7 树和二叉树
    • 7.1 树和二叉树的定义
    • 7.2 二叉树的基本性质
    • 7.3 二叉树的两种存储结构
    • 7.4 遍历二叉树
    • 7.5 树和森林
    • 7.6 哈夫曼树
    • 7.7 本章小结
    • 7.8 作业讲解
    • 7.9 单元测试
    • 7.10 竞赛拓展
      • 7.10.1 树的同构
      • 7.10.2 二叉搜索树
      • 7.10.3 平衡二叉树
      • 7.10.4 是否同一棵二叉搜索树
      • 7.10.5 堆
  • 8 图
    • 8.1 图的定义和基本术语
    • 8.2 图的存储结构
    • 8.3 图的创建
    • 8.4 图的两种遍历方式
    • 8.5 图的深度优先搜索遍历算法
    • 8.6 图的广度优先搜索遍历算法
    • 8.7 图的应用——最小生成树
    • 8.8 图的应用——拓扑排序
    • 8.9 图的应用——最短路径
    • 8.10 本章小结
    • 8.11 作业讲解
    • 8.12 单元测试
    • 8.13 竞赛拓展
      • 8.13.1 建立图
      • 8.13.2 应用实例:拯救007
      • 8.13.3 应用实例:六度空间
      • 8.13.4 应用实例:哈利波特的考试
  • 9 查找
    • 9.1 查找的基本概念
    • 9.2 线性表的查找
    • 9.3 树表的查找
    • 9.4 散列表的查找
    • 9.5 本章小结
    • 9.6 作业讲解
    • 9.7 单元测试
  • 10 排序
    • 10.1 基本概念和排序方法概述
    • 10.2 插入排序
    • 10.3 交换排序
    • 10.4 选择排序
    • 10.5 归并排序
    • 10.6 本章小结
    • 10.7 作业讲解
  • 11 竞赛拓展——算法竞赛从C到C++
    • 11.1 输入输出
    • 11.2 String 类
    • 11.3 类和对象
    • 11.4 函数和STL
    • 11.5 algorithm
  • 12 竞赛拓展——ACM算法专题
    • 12.1 基础算法
    • 12.2 简单数据结构
    • 12.3 数论入门
    • 12.4 字符串
    • 12.5 图论基础
    • 12.6 DP动态规划
插入排序