数据结构
数据结构
5000+ 人选课
更新日期:2026/03/31
开课平台智慧树
开课高校大庆师范学院
开课教师李欣程晓旭刘博宁李宏博
学科专业工学计算机类
开课时间2026/01/21 - 2026/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
本课程积极推进课程思政建设,坚持“三全育人”,“显性教育”与“隐性教育”结合以及“大思政”格局构建,在课程设计、课程内容、教学方法与手段、思政元素融合教学案例等方面都有比较深入的研讨。 本课程以章为单位划分,每章中的内容又进一步拆分成更小的知识点,再将每个小的知识点对应录制成课程视频,采用线上线下相结合的学习方式,完成每个视频的思考题、章测试、讨论及期末试卷库的练习及考核,有效检查学习效果。课程全部资源共享于网上,方便学习。 教学目标:通过学习,培养学生分析问题、解决问题的能力,使学生养成良好的程序设计习惯;思政育人目标:通过学习,培养学生的计算思维,工程素养以及人文素养,进一步树立、加强学生正确的世界观、人生观和价值观,培养学生利用先进的、科学的方法解决现实中具体问题的能力。
课程大纲

在线教程

章节简介教学计划
绪论
登录后可预览视频
为什么学习数据结构
李宏博
数据结构基本概念
李宏博
数据结构的主要内容
李宏博
算法
李宏博
线性表
线性表定义及其顺序存储
程晓旭
顺序表的插入、删除和查找操作
程晓旭
线性表链式存储及遍历
程晓旭
单链表的插入和删除操作
程晓旭
循环链表和双链表
程晓旭
线性表的应用
程晓旭
串及其存储和实现
程晓旭
模式匹配算法
BF算法
程晓旭
KMP算法
程晓旭
栈和队列
栈及其存储与实现
程晓旭
栈的应用(一)数制转换问题和括号匹配问题
程晓旭
栈的应用(二)表达式求值问题
程晓旭
队列
队列及其顺序存储和实现
程晓旭
队列的l链式存储和实现
程晓旭
队列的应用
程晓旭
递归
程晓旭
数组和广义表
数组
程晓旭
特殊矩阵的压缩存储
元素分布规律的特殊矩阵的压缩存储
程晓旭
稀疏矩阵的压缩存储
程晓旭
广义表
程晓旭
树与二叉树
章节引入
刘博宁
树及其抽象数据类型
刘博宁
二叉树的定义与性质
刘博宁
遍历二叉树的方法
刘博宁
二叉树的存储结构
刘博宁
线索二叉树的使用
刘博宁
哈夫曼树及其应用
刘博宁
树的表示和实现
刘博宁
图的基本概念及其抽象数据类型描述
程晓旭
图的存储和实现
图的邻接矩阵存储及实现
程晓旭
图的邻接表、邻接多重表存储及实现
程晓旭
图的遍历
程晓旭
最小生成树
程晓旭
最短路径
单源最短路径
程晓旭
任意一对顶点间的最短路径
程晓旭
查找
查找的基本概念
刘博宁
二分法查找
刘博宁
基于索引的分块查找
刘博宁
散列查找
刘博宁
二叉排序树和平衡二叉树
刘博宁
排序导学
排序导学
排序导学
李欣
排序概述
李欣
排序导学
直接插入排序修改
李欣
折半插入排序修改
李欣
希尔排序修改
李欣
交换排序
冒泡排序
李欣
快速排序
李欣
选择排序
简单选择排序
李欣
堆排序
李欣
归并排序
归并排序——自底向上
李欣
归并排序——自顶向下
李欣
排序总结
李欣
  • 第一章绪论

    课程绪论

  • 1.1为什么学习数据结构

    数据结构是一门理论与实践并重的课程,既要掌握数据结构的基础理论知识,又要掌握运行和调试程序的基本技能。因此,数据结构课程在计算机学科本科培养过程中的地位十分重要。

  • 1.2数据结构基本概念

    对数据,数据元素,数据项,关键字和主关键字进行详细的介绍。

  • 1.3数据结构的主要内容

    数据的逻辑结构是指数据元素之间的逻辑关系,用一个数据元素的集合和定义在此集合上的若干关系来表示,常简称为数据结构

  • 1.4算法

    算法

  • 第二章线性表

    线性表的抽象数据类型、将线性表的顺序和链式两种存储结构分别实现封装成顺序类和链式类、顺序表类和单链表类的设计与实现、双链表和循环链表插入、删除操作及线性表的应用。

  • 2.1线性表定义及其顺序存储

    线性表及其特点、线性表的顺序存储结构及顺序表类。

  • 2.2顺序表的插入、删除和查找操作

    顺序表的插入、删除过程及算法性能分析。

  • 2.3线性表链式存储及遍历

    ]链表概念、分类及单链表的遍历。

  • 2.4单链表的插入和删除操作

    在单链表i位置处的插入、删除操作过程及算法分析

  • 2.5循环链表和双链表

    循环链表、双链表及循环双链表上插入、删除操作及算法分析

  • 2.6线性表的应用

    一元多项式的加运算过程及算法实现

  • 第三章

    第三章

  • 3.1串及其存储和实现

    串及其存储和实现

  • 3.2模式匹配算法

    BF和KMP两个算法的子串匹配过程及算法实现、next数组的计算过程。

  • 第四章栈和队列

    栈和队列抽象数据类型及它们的实现和应用

  • 4.1

    栈的定义、栈的顺序存储和链式存储、应用栈解决数制转换、括号匹配及表达式求值问题、

  • 4.2队列

    队列、顺序队列、顺序循环队列类、链式队列、链式队列类、应用队列解决求解素数环问题及优先队列的实现

  • 4.3递归

    递归特性问题、递归算法、单链表的递归算法

  • 第五章数组和广义表

    数组的存储结构、广义表的概念和存储结构

  • 5.1数组

    二维数组的逻辑结构、二维数组的存储和遍历、Java语言的二维数组

  • 5.2特殊矩阵的压缩存储

    三角矩阵、对称矩阵和对角矩阵的压缩存储、稀疏矩阵的压缩存储

  • 5.3广义表

    广义表抽象数据类型、广义表的存储结构、广义表双链表示的实现

  • 第六章树与二叉树

    本章主要介绍树与二叉树的相关知识

  • 6.1章节引入

    本章主要讨论树和二叉树的基本概念和存储结构,二叉树的二叉链表操作实现;线索二叉树的操作实现,以哈夫曼树为例介绍二叉树的应用;介绍树的孩子兄弟链表操作实现。

  • 6.2树及其抽象数据类型

    树结构从自然界中的树抽象而来,有树根,从根发源类似枝杈的分支关系和作为终点的叶子等。生活中所见的家谱,Windows的文件系统等,虽然表现形式各异,本质上是树结构。

  • 6.3二叉树的定义与性质

    二叉树是n(n>=0)个结点组成的有限集合,n=0时称为空二叉树;n>0的二叉树由一个根结点和两棵互不相交的,分别称为左子树和右子树的二叉树构成。二叉树的性质有:1.若根节点的层次为1,则二叉树第i层最多有2^i-1 (i>=1)个结点。2.在高度为h的二叉树中,最多有2^h -1个结点。(h>=0)

  • 6.4遍历二叉树的方法

    二叉树的遍历是按照一定规则和次序访问二叉树中的所有结点,并且每个结点仅被访问一次。虽然二叉树是非线性结构,但遍历二叉树访问结点的次序是线性的,而且访问的规则和次序不止一种。二叉树的遍历规则有孩子优先和兄弟优先。

  • 6.5二叉树的存储结构

    二叉树主要采用链式存储结构,顺序存储结构仅适用于完全二叉树(满二叉树)。

  • 6.6线索二叉树的使用

    线索二叉树利用这些空链存储结点在某中遍历次序下的前驱和后继关系。意即原有非空的链保持不变,仍然指向该结点的左,右孩子结点;使空的left域指向前驱结点,空的right域指向后继结点。指向前驱和后继结点的链称为线索。

  • 6.7哈夫曼树及其应用

    哈夫曼树是带权外路径长度最小的二叉树,又称最优二叉树。

  • 6.8树的表示和实现

    主要讲解树的遍历规则,树的存储结构以及树的父母孩子兄弟链表实现。

  • 第七章

    图的基本概念、分别以图的邻接矩阵和邻接表实现抽象数据类型,实现图的深度优先搜索和广度优先搜索,求解图的最小生成树和最短路径问题。

  • 7.1图的基本概念及其抽象数据类型描述

    图的基本概念、图抽象数据类型

  • 7.2图的存储和实现

    图的邻接矩阵存储及实现、图的邻接表、邻接多重表存储及实现

  • 7.3图的遍历

    深度优先搜索、广度优先搜索过程举例及算法实现

  • 7.4最小生成树

    普里姆算法和克鲁斯卡尔算法构造最小生成树的过程及算法实现

  • 7.5最短路径

    狄杰斯特拉算法及实现、弗洛伊德算法及实现

  • 第八章查找

    本章主要介绍查找的内容及相关知识

  • 8.1查找的基本概念

    查找是数据结构的一种基本操作,查找效率决定计算机某些应用系统的效率。查找算法依赖J数据结构,不同的数据结构需要采用不同的查找算法。因此,如何有效地组织数据,如何根据数据结构的特点快速、高效地获得查找结果,是数据处理的核心问题。

  • 8.2二分法查找

    二分法查找(Binary Search)是一种典型的采用分治策略的算法,它将问题分解为规模更小的子问题,分而治之,逐一解决。二分法查找的两个条件是:顺序存储、数据元素排序。

  • 8.3基于索引的分块查找

    当数据量较大时,建立索引(lndex)是一种有效的分治策略。为存储数据元素的主表创建索引表,其中的索引项(Index ltem)保存元素的关键字信息及存储位置。通过索引机制,缩小查找范围,以空间换取时间。例如,每本书正文前面的目录是一种索引表。各种字典也是建立索引的,并且可能建立多级索引。汉字字典有部首检字表和检字表,构成二级索引结构。

  • 8.4散列查找

    如果根据元素的关键字就能够知道该元素的存储位置,那么只要花费O(1)时间就能得到查找结果,这是最理想的查找效率,散列存储就是基于这种思路实现的。散列(Hash)是一种按关键字编址的存储和查找技术,hash原意为杂凑。散列表(Hash Table)根据元素的关键字确定元素的存储位置,其查找、插入和删除操作效率接近O(l),是目前查找效率最高的一种数据结构。散列技术的关键问题是设计散列函数和处理冲突。

  • 8.5二叉排序树和平衡二叉树

    一个数据元素集合,如果既要排序、又要支持高效的查找、插入、删除操作,将其组织成什么样的数据结构能够满足要求?前述若干数据结构的排序、查找、插入、删除等操作性能分析如下:①排序顺序表,采用二分法查找,时间复杂度为O(log2n);插入和删除操作的时间复杂度为O(n),数据移动量大,效率较低。②排序单链表,顺序查找的时间复杂度为O(n),不能采用二分法查找;插入和删除操作的时间复杂度为O(n),虽然没有数据移动但因查找效率低,使得插入和删除的效率也较低。③散列表,虽然查找、插入和删除操作的效率较高,但是散表列不具有排序特性。 上述这几种数据结构都不能满足该问题的要求。能够满足该问题要求的是二叉排序树。

  • 第九章排序导学

    排序的应用实例

  • 9.1排序导学

    有关排序的基本概念。

  • 9.2排序导学

    直接插入排序、折半插入及折半插入排序的基本思想,算法的设计与实现、时空性能和稳定性分析。

  • 9.3交换排序

    冒泡排序、快速排序的基本思想、算法设计、时空性能和稳定性分析。

  • 9.4选择排序

    简单选择排序、堆排序的基本思想、算法设计、时空性能和稳定性分析。

  • 9.5归并排序

    自底向上、自顶向下的二路归并排序算法的思想及时空性能分析。

  • 9.6排序总结

    对内排序算法的时空复杂度和稳定性进行总结。

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

    1.1 为什么学习数据结构

    1.2 数据结构基本概念

    1.3 数据结构的主要内容

    1.4 算法

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

    2.1 线性表定义及其顺序存储

    2.2 顺序表的插入、删除和查找操作

    2.3 线性表链式存储及遍历

    2.4 单链表的插入和删除操作

    2.5 循环链表和双链表

    2.6 线性表的应用

    视频数6
  • 第三章  作业测试
    第三章

    3.1 串及其存储和实现

    3.2 模式匹配算法

    视频数3
  • 第四章  作业测试
    第四章 栈和队列

    4.1

    4.2 队列

    4.3 递归

    视频数7
  • 第五章  作业测试
    第五章 数组和广义表

    5.1 数组

    5.2 特殊矩阵的压缩存储

    5.3 广义表

    视频数4
  • 第六章  作业测试
    第六章 树与二叉树

    6.1 章节引入

    6.2 树及其抽象数据类型

    6.3 二叉树的定义与性质

    6.4 遍历二叉树的方法

    6.5 二叉树的存储结构

    6.6 线索二叉树的使用

    6.7 哈夫曼树及其应用

    6.8 树的表示和实现

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

    7.1 图的基本概念及其抽象数据类型描述

    7.2 图的存储和实现

    7.3 图的遍历

    7.4 最小生成树

    7.5 最短路径

    视频数7
  • 第八章  作业测试
    第八章 查找

    8.1 查找的基本概念

    8.2 二分法查找

    8.3 基于索引的分块查找

    8.4 散列查找

    8.5 二叉排序树和平衡二叉树

    视频数5
  • 第九章  作业测试
    第九章 排序导学

    9.1 排序导学

    9.2 排序导学

    9.3 交换排序

    9.4 选择排序

    9.5 归并排序

    9.6 排序总结

    视频数12
  • 期末考试
App 下载
关注我们