数据结构与算法(仲恺农业工程学院)
数据结构与算法(仲恺农业工程学院)
5000+ 人选课
更新日期:2025/06/25
开课时间2025/01/21 - 2025/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
数据结构与算法
课程大纲

在线教程

章节简介教学计划
绪论
登录后可预览视频
数据结构的研究内容
石玉强
基本概念和术语
数据、数据元素、数据项和数据对象
石玉强
数据结构
石玉强
数据类型和抽象数据类型
石玉强
算法和算法分析
算法和算法分析
石玉强
算法评价的基本标准
石玉强
算法的时间复杂度
石玉强
线性表
线性表的类型定义
石玉强
线性表的顺序存储结构
线性表的顺序存储表示
石玉强
顺序表中基本运算的实现(一)
石玉强
顺序表中基本运算的实现(二)
石玉强
线性表的链式存储结构
线性表的链式存储表示
石玉强
线性表基本运算在单链表中的实现
石玉强
循环链表
石玉强
双向链表
石玉强
静态链表
石玉强
案例分析与实现
石玉强
栈和队列
栈和队列的定义和特点
张世龙
栈的表示和操作实现
栈的表示和操作实现(一)
张世龙
栈的表示和操作实现(二)
张世龙
栈与递归
栈与递归(一)
张世龙
栈与递归(二)
张世龙
队列的表示和操作实现
张世龙
典型栈和队列案例分析与实现
栈的典型案例(一)
张世龙
栈的典型案例(二)
张世龙
队列的典型案例
张世龙
串、数组和广义表
串的定义和抽象数据类型描述
闫大顺
串的存储结构及其运算
串的定长顺序存储结构
闫大顺
串的堆分配存储结构 
闫大顺
串的块链存储结构
闫大顺
串的模式匹配算法(一)
闫大顺
串的模式匹配算法(二)
闫大顺
串的模式匹配算法(三)
闫大顺
数组
数组(一)
闫大顺
数组(二)
闫大顺
数组(三)
闫大顺
广义表
广义表的定义
闫大顺
广义表的存储结构
闫大顺
案例分析与实现
闫大顺
树与二叉树
树的基本概念
王俊红
树的的抽象数据类型描述
王俊红
二叉树
二叉树(一)
王俊红
二叉树(二)
王俊红
二叉树(三)
王俊红
二叉树的遍历
王俊红
线索二叉树
王俊红
哈夫曼树及其应用
王俊红
学习资料
图的定义和基本术语 
王俊红
图的存储结构 
王俊红
图的遍历
王俊红
图的应用
最小生成树(一)
王俊红
最小生成树(二)
王俊红
最短路径
王俊红
拓扑排序 
王俊红
关键路径 
王俊红
查找
查找的基本概念
查找的基本概念及线性表的查找(一)
张世龙
线性表的查找
线性表的查找(二)
张世龙
树表的查找
二叉排序树
张世龙
平衡二叉树
张世龙
B-树与B+树
张世龙
哈希表的查找
哈希表的查找(一)
张世龙
哈希表的查找(二)
张世龙
排序
基本概念和排序方法概述 
闫大顺
插入排序
直接插入排序(一)
闫大顺
直接插入排序(二)
闫大顺
折半插入排序
闫大顺
希尔排序 
闫大顺
交换排序 
冒泡排序
闫大顺
快速排序
闫大顺
选择排序 
简单选择排序
闫大顺
树形选择排序 
闫大顺
堆排序
闫大顺
归并排序 
闫大顺
基数排序 
多关键字的排序
闫大顺
链式基数排序 
闫大顺
外部排序
外部排序的基本方法
闫大顺
多路归并排序
闫大顺
置换-选择排序 
闫大顺
  • 第一章绪论

    一、数据结构的含义及其相关概念 二、数据的常用的逻辑结构、存储结构 三、抽象数据类型的定义 四、算法的时间和空间复杂度的分析方法

  • 1.1数据结构的研究内容

    数据结构的含义。

  • 1.2基本概念和术语

    数据结构的相关概念和术语:数据、数据元素、数据项和数据对象,数据结构,数据类型和抽象数据类型。

  • 1.3算法和算法分析

    算法和算法分析,算法评价的基本标准,算法的时间复杂度和空间复杂度。

  • 第二章线性表

    一、线性表的逻辑结构和线性表的基本概念 二、顺序表、链式表及静态链表的描述方法、特点及其相关概念 三、顺序表和链式表的基本操作的算法实现 四、从时间和空间的角度综合比较顺序表和链式表的不同特点及其使用场合 线性表是最简单也是最基本的一种线性数据结构。它有两种存储表示方法:顺序表和链式表,其基本操作是插入、删除和查找。

  • 2.1线性表的类型定义

    线性表的定义与抽象数据类型描述

  • 2.2线性表的顺序存储结构

    线性表的顺序存储表示、基本运算及其实现

  • 2.3线性表的链式存储结构

    线性表的链式存储表示、基本运算及其在单链表中的实现,循环链表、双向链表、静态链表的概念、运算及其实现。

  • 第三章栈和队列

    栈和队列是两个重要的数据结构。从数据结构的角度看,栈和队列也是操作受限的线性表:栈按“后进先出”的规则进行操作,队列按“先进先出”的规则进行操作,在软件设计中常用到这两种数据结构。本章讨论栈和队列的定义、表示方法和实现。通过本章学习,要求掌握的内容有:栈和队列地逻辑结构和存储结构、基本运算以及实现算法。

  • 3.1栈和队列的定义和特点

    本节系统的介绍了栈和队列的定义和特点。通过本节学习,要求掌握栈与队列的定义,理解栈与队列的特点。

  • 3.2栈的表示和操作实现

    本节介绍了栈的抽象类型定义、顺序栈与链栈的表示和实现。通过本节学习,应掌握顺序栈与链栈的表示和实现。

  • 3.3栈与递归

    递归是计算机科学中的一个重要概念,对递归的研究是计算机科学领域中的一个重要课题。本节介绍了采用递归算法解决的问题、递归过程与递归工作栈、递归算法的效率分析及将递归转换为非递归的方法。通过本节学习,应该理解递归过程,掌握递归算法的效率分析及递归转换为非递归的方法。

  • 3.4队列的表示和操作实现

    本节介绍了队列的抽象类型定义、循环队列及链队的表示和实现。通过本节学习,应掌握循环队列及链队的表示和实现,了解限定性数据结构的其它队列。

  • 3.5典型栈和队列案例分析与实现

    本节通过迷宫探索求解、表达式求值案例展示了用栈来处理具有递归结构问题的求解过程;通过迷宫的最短路径求解案例展示了队列做为辅助数据结构,用来暂时存储需要按照一定次序依次处理但尚未处理的元素的应用过程。通过本节学习,应掌握栈与队列在问题求解过程中的应用。

  • 第四章串、数组和广义表

    本章介绍串的存储和实现,数组和特殊矩阵的存储和实现,广义表的定义和存储结构。通过学习重点掌握(1)串的存储结构及重要运算(2)数组的存储,特别是特殊矩阵、稀疏矩阵的压缩存储(3)广义表的定义和存储结构。

  • 4.1串的定义和抽象数据类型描述

    首先介绍了本章的主要内容,再本节介绍关于串的多个定义,例如串、子串、串长、串值、前缀、后缀、子串位置等等,通过详细的例子阐述这些定义的内涵,最后给出串结构的抽象数据类型描述。

  • 4.2串的存储结构及其运算

    本节介绍串的定长顺序存储结构、堆分配存储结构、块链存储结构,及以上存储结构上的操作实现。最后介绍串的模式匹配的Brute-Force算法和KMP算法。

  • 4.3数组

    本节介绍数组的顺序存储,对称阵、三角矩阵、稀疏矩阵等特殊矩阵的压缩存储

  • 4.4广义表

    本节介绍广义表的定义、存储结构和典型的案例。

  • 4.5案例分析与实现

    案例分析与实现

  • 第五章树与二叉树

    本章介绍树和二叉树的概念、存储结构,二叉树的遍历等常用算法,及通过构建哈夫曼树对电文进行哈夫曼编码。通过本章学习,重点掌握(1)树的概念和存储结构(2)二叉树的概念、存储结构和性质(3)二叉树的各种遍历算法,并能利用该思想解决实际问题(4)树、森林和二叉树的转换(5)哈夫曼树的构建和哈夫曼编码。

  • 5.1

    本小节介绍树的概念及相关术语,树的逻辑表示方法,树的抽象数据类型,树的遍历方法和树的存储结构。

  • 5.2二叉树

    本小节介绍二叉树的概念及相关术语,二叉树的性质,二叉树的顺序和链式存储结构,树与二叉树间的转换,二叉树的基本运算算法实现

  • 5.3二叉树的遍历

    本小节介绍二叉树的先序遍历、中序遍历、后序遍历的过程及其递归算法的实现,给定二叉树遍历序列还原二叉树结构,二叉树的层序遍历及其算法实现

  • 5.4线索二叉树

    本小节介绍线索二叉树的概念,以及对一棵二叉树进行先序、中序和后序线索化的过程。

  • 5.5哈夫曼树及其应用

    本小节介绍哈夫曼树的概念,哈夫曼树的构造过程及算法实现,及应用哈夫曼树为电文进行哈夫曼编码。

  • 第六章

    本章介绍图的概念、图的存储结构、图的遍历算法和图的各种实际应用算法的实现。通过本章学习,重点掌握(1)图的概念和存储结构(2)图的深+C48度优先和广度优先遍历算法(3)使用普里姆算法和克鲁斯卡尔算法构建最小生成树(4)使用狄克斯特拉算法求最短路径(5)求有向图的拓扑排序序列(6)求AOE网中的关键路径。

  • 6.1图的定义和基本术语 

    本小节介绍图的概念及相关术语,图的抽象数据类型。

  • 6.2图的存储结构 

    本小节介绍图的邻接矩阵和邻接表存储结构,及两种存储结构的相互转换。

  • 6.3图的遍历

    本小节介绍图的深度优先遍历和广度优先遍历过程及算法实现,并利用深度和广度优先遍历思想解决实际问题。

  • 6.4图的应用

    本小节介绍图的各种应用,包括求最小生成树的普里姆算法和克鲁斯卡尔算法,求最短路径的狄克斯特拉算法,求有向图的+E46拓扑排序序列,求AOE网中的关键路径。

  • 第七章查找

    查找(Search)是数据处理中经常使用的重要运算,在系统程序和应用程序中均有广泛的应用。本章主要讨论内存中的查找算法,主要包括线性表的查找算法、二叉搜索(查找)树、动态平衡树、B-树、B+树和哈希查找算法。通过本章学习,应了解查找的基本概念、查找的基本方法;掌握顺序查找和折半查找技术;了解分块索引查找技术;深刻领会二叉排序树的构造和查找方法;掌握平衡二叉树的基本概念。

  • 7.1查找的基本概念

    本节介绍了查找的几个基本概念,通过本节学习,应理解查找表、关键字、查找、平均查找长度等概念。

  • 7.2线性表的查找

    本节介绍了3种在线性表上进行查找的方法,分别是顺序查找、折半查找和分块查找。通过本节学习,应理解顺序查找的算法思想,掌握折半查找、分块查找算法。

  • 7.3树表的查找

    本节介绍了树表的查找方法,重点包括二叉排序树、平衡二叉树、B-树、B+树。通过本节学习,应理解动态查找的概念,掌握二叉排序树、平衡二叉树查找,理解B-树、B+树的查找过程。

  • 7.4哈希表的查找

    本节介绍了哈希表的基本概念、哈希函数的构造方法、处理冲突的方法、散列表的查找。通过本节学习,应掌握哈希表的基本概念、哈希函数的构造方法,理解处理冲突的方法,掌握散列表的查找。

  • 第八章排序

    一、理解排序的基本概念,包括排序、排序的稳定性及排序的性能分析。 二、掌握各种内部排序和外部排序的基本思想。 三、熟练掌握插入排序、交换排序、归并排序、基数排序等内部排序的算法思想以及排序过程,能够分析各种排序算法的时间复杂度、空间复杂度和稳定性。

  • 8.1基本概念和排序方法概述 

    排序的基本概念、排序的稳定性、待排序记录的存储方式、内部排序方法的分类、排序算法效率的评价指标。

  • 8.2插入排序

    直接插入排序、折半插入排序和希尔排序的算法思想和性能分析。

  • 8.3交换排序 

    冒泡排序和快速排序的算法思想和性能分析。

  • 8.4选择排序 

    简单选择排序、树形选择排序和堆排序的算法思想和性能分析。

  • 8.5归并排序 

    归并排序的算法思想和性能分析。

  • 8.6基数排序 

    多关键字的排序和链式基数排序的算法思想和性能分析。 

  • 8.7外部排序

    外部排序的基本方法、多路归并排序以及置换-选择排序的算法思想。

  • 开始学习
  • 第一章  作业测试
    第一章 绪论

    1.1 数据结构的研究内容

    1.2 基本概念和术语

    1.3 算法和算法分析

    视频数7
  • 第二章  作业测试
    第二章 线性表

    2.1 线性表的类型定义

    2.2 线性表的顺序存储结构

    2.3 线性表的链式存储结构

    视频数10
  • 第三章  作业测试
    第三章 栈和队列

    3.1 栈和队列的定义和特点

    3.2 栈的表示和操作实现

    3.3 栈与递归

    3.4 队列的表示和操作实现

    3.5 典型栈和队列案例分析与实现

    视频数9
  • 第四章  作业测试
    第四章 串、数组和广义表

    4.1 串的定义和抽象数据类型描述

    4.2 串的存储结构及其运算

    4.3 数组

    4.4 广义表

    4.5 案例分析与实现

    视频数13
  • 第五章  作业测试
    第五章 树与二叉树

    5.1

    5.2 二叉树

    5.3 二叉树的遍历

    5.4 线索二叉树

    5.5 哈夫曼树及其应用

    视频数8
  • 第六章  作业测试
    第六章

    6.1 图的定义和基本术语 

    6.2 图的存储结构 

    6.3 图的遍历

    6.4 图的应用

    视频数8
  • 第七章  作业测试
    第七章 查找

    7.1 查找的基本概念

    7.2 线性表的查找

    7.3 树表的查找

    7.4 哈希表的查找

    视频数7
  • 第八章  作业测试
    第八章 排序

    8.1 基本概念和排序方法概述 

    8.2 插入排序

    8.3 交换排序 

    8.4 选择排序 

    8.5 归并排序 

    8.6 基数排序 

    8.7 外部排序

    视频数16
  • 期末考试