数据结构(山东工商学院)
数据结构(山东工商学院)
少于1000 人选课
更新日期:2025/05/17
开课时间2025/01/21 - 2025/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
数据结构(data structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合,往往同高效的检索算法和索引技术有关。大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。这是一个从事计算机科学与技术研究和应用的科学工作者的基本要求,也是进一步学习计算机专业的其它课程,如操作系统、数据库管理系统、软件工程、编译原理和人工智能等的重要基础。
课程大纲

在线教程

章节简介教学计划
绪论
登录后可预览视频
什么是数据结构
陈姝颖
数据结构的概念和术语
陈姝颖
数据类型和抽象数据类型
陈姝颖
算法和算法描述
陈姝颖
算法效率的度量
陈姝颖
线性表
线性表的定义及抽象数据类型
陈姝颖
线性表的顺序存储与实现
陈姝颖
线性表的链式存储与实现
单链表
陈姝颖
单链表上的基本运算
陈姝颖
循环链表 双向链表
陈姝颖
栈和队列
栈的定义
石艳荣
栈的表示和实现—顺序栈
石艳荣
栈的表示和实现—链栈
石艳荣
栈的应用举例
行编辑
石艳荣
括号匹配
石艳荣
队列
队列的定义
石艳荣
队列的表示和实现—链队列
石艳荣
队列的表示和实现—循环队列
石艳荣
队列应用举例
模拟打印机缓冲区
石艳荣
串、数组和广义表
串的定义
石艳荣
串的表示和实现
定长顺序存储表示
石艳荣
堆分配存储
石艳荣
串的块链存储表示
石艳荣
数组
数组的定义
石艳荣
数组的顺序存储结构
石艳荣
矩阵的压缩存储—特殊矩阵
石艳荣
矩阵的压缩存储—稀疏矩阵之三元组表
石艳荣
矩阵的压缩存储—求转置矩阵
石艳荣
矩阵的压缩存储—稀疏矩阵之十字链表
石艳荣
广义表
广义表的定义
石艳荣
广义表的存储结构
石艳荣
树和二叉树
树的基本概念
肖进杰
二叉树
肖进杰
二叉树的遍历
二叉树的遍历算法
肖进杰
二叉树遍历算法的应用
肖进杰
线索二叉树
二叉树的线索化
肖进杰
树和森林
树的存储结构
肖进杰
森林与二叉树的转换
肖进杰
哈夫曼树及其应用
构造哈夫曼树
肖进杰
本章小结
肖进杰
图的定义和术语
李博
图的存储结构
数组表示法/邻接矩阵
李博
邻接表
李博
十字链表
李博
邻接多重表
李博
图的遍历
遍历概念及两种遍历方法
李博
图的连通性问题
李博
图的应用
有向无环图及其应用
李博
有向图的强连通分量
李博
关键路径
李博
最短路径
李博
查找
查找的基本概念
唐焕玲
静态查找方法
顺序查找
唐焕玲
折半查找
唐焕玲
分块查找
唐焕玲
动态查找
二叉排序树(上)--定义、查找和插入
唐焕玲
二叉排序树(中)--删除1
唐焕玲
二叉排序树(下)--删除2
唐焕玲
平衡二叉树(上)
唐焕玲
平衡二叉树(下)
唐焕玲
动态查找--B-树
唐焕玲
哈希查找
哈希查找(上)--基本概念
唐焕玲
哈希查找(中)--哈希函数的构造
唐焕玲
哈希查找(下)--处理冲突的方法
唐焕玲
排序
概述及插入排序
排序概述直接插入排序
唐焕玲
希尔排序
唐焕玲
交换排序
冒泡排序
唐焕玲
快速排序
唐焕玲
选择排序
简单选择排序
唐焕玲
堆排序
唐焕玲
归并排序
唐焕玲
基数排序
唐焕玲
排序方法的比较
唐焕玲
  • 第一章绪论

    本章主要介绍:
    1、数据结构的相关术语:就数据、数据元素、数据对象、 数据类型、数据结构;数据的逻辑结构与物理结构概念,以及逻辑结构与物理结构间的关系
    2、理解数据类型和抽象数据类型。
    3、理解算法的定义、算法的特性、算法的时间代价、算法的空间代价。
    4、掌握计算语句频度和估算算法时间复杂度的方法。

  • 1.1什么是数据结构

    理解数据结构的相关术语:就数据、数据元素、数据对象、 数据类型、数据结构;
    数据的逻辑结构与物理结构概念,以及逻辑结构与物理结构间的关系。

  • 1.2数据结构的概念和术语

    理解数据类型和抽象数据类型。

  • 1.3数据类型和抽象数据类型

    理解数据类型和抽象数据类型。

  • 1.4算法和算法描述

    了解算法的定义、算法的特性、算法的时间代价、算法 的空间代价。

  • 1.5算法效率的度量

    掌握计算语句频度和估算算法时间复杂度的方法。

  • 第二章线性表

    本章主要学习:
    1、线性表的逻辑结构定义及其特点。
    2、线性表的顺序存储结构的特点及其基本操作。
    3、线性表的链式存储结构的特点及其基本操作。
    4、循环链表和双向链表的基本操作。

  • 2.1线性表的定义及抽象数据类型

    掌握线性表的逻辑结构,及抽象数据类型描述。

  • 2.2线性表的顺序存储与实现

    线性表的顺序存储及运算实现,包括插入、删除算法。

  • 2.3线性表的链式存储与实现

    线性表的链式存储结构及运算实现。
    包括单链表、循环链表和双向链表,以及插入、删除和查找等算法的实现。

  • 第三章栈和队列

    本章主要介绍:
    1、栈的定义与特点
    2、栈的两种存储结构描述及相关操作的实现
    3、队列的定义与特点
    4、队列的两种存储结构描述及相关操作的实现
      5、栈和队列在实际生活中的应用
       栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同。只是其操作规则受到了限制,因此,又称它们为操作受限的线性表。栈和队列在各种类型的软件系统中应用非常广泛,例如在程序设计语言中利用栈实现递归,最后调用的最先返回;在文档打印时所有待打印的文档排成一个队列等候,先来先得到服务等等。因此,讨论栈与队列的结构特征与操作实现特点,有着重要的意义。

  • 3.1

    本节主要学习:
    栈的逻辑结构,顺序栈及运算实现,链栈以及运算实现;

  • 3.2栈的应用举例

    本节主要学习:
    栈的应用,包括行编辑和括号匹配问题。

  • 3.3队列

    本节主要学习:
    队列的逻辑结构,循环队列、链队列及其运算的实现;

  • 3.4 队列应用举例

    本节主要学习队列的应用。

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

    本章主要内容:
    1、串的定义、存储表示和运算实现;
    2、数组的顺序存储和实现;
    3、稀疏矩阵的压缩存储方法;
    4、 广义表的定义、特性与存储。
        计算机处理的对象分为数值数据和非数值数据,字符串是最基本的非数值数据。字符串处理在语言编译、信息检索、文字编辑等问题中,有广泛的应用。线性表、栈、队列和串中的数据元素都是非结构的原子类型,元素的值是不可再分解的。数组和广义表可以看成是线性表在下述含义上的扩展:表中的数据元素本身也是一个数据结构。这一章,我们将讨论串、数组和广义表的基本存储结构和基本操作。

  • 4.1串的定义

    本节主要学习串的逻辑结构。

  • 4.2串的表示和实现

    本节主要学习串的存储结构,及运算实现。

  • 4.3数组

    主要学习:
    1、数组的顺序存储和实现;
    2、稀疏矩阵的压缩存储方法。

  • 4.4广义表

    本节主要学习:广义表的定义、特性与存储结构及运算。

  • 第五章树和二叉树

    本章主要内容:
     1、树和二叉树的基本概念;
     2、二叉树的定义、性质和存储表示;
     3、二叉树的建立、遍历方法,二叉树的线索化及存储;
     4、树的存储结构、树和森林的遍历及与二叉树之间的转换
     5、哈夫曼树的定义及其应用。

  • 5.1树的基本概念

    树的基本概念

  • 5.2二叉树

    二叉树的定义和性质、存储机构

  • 5.3二叉树的遍历

    二叉树的遍历算法

  • 5.4线索二叉树

    二叉树的线索化及遍历

  • 5.5树和森林

    树的存储以及森林和二叉树的转换

  • 5.6哈夫曼树及其应用

    哈夫曼树及其应用

  • 5.7本章小结

    小结

  • 第六章

    本章主要介绍图的相关概念以及应用

  • 6.1图的定义和术语

    介绍图的一些相关定义和术语

  • 6.2图的存储结构

    介绍图的几种存储结构

  • 6.3图的遍历

    图的遍历方法

  • 6.4图的应用

    图的应用实例

  • 第七章查找

    本章主要内容:
    1.查找的基本概念
    2.静态查找表:顺序查找、折半查找和索引查找。
    3.动态查找表:二叉排序树、平衡二叉树和B-树。
    4.哈希表的定义与构造方法及哈希表的查找。
    日常生活中,人们经常要进行的一项工作是“查找”。查找(search)又称检索,是数据处理中使用最频繁的一种操作。例如,在通讯录中查找某个人的电话;在新闻中查找感兴趣的报道;在给定的一组数据集合中,查找某个数据元素是否存在;或者查找符合某些条件的多个数据元素等。查找算法的优劣往往影响整个软件系统的效率,本章将讨论几种查找算法。

  • 7.1查找的基本概念

    本节主要内容:
    1、查找的基本概念和基本术语;
    2、查找算法的评估方法。

  • 7.2静态查找方法

    本节主要内容:介绍三种静态查找算法,顺序查找、折半查找和分快查找。

  • 7.3动态查找

    动态查找表通常采用树结构表示,既容易实现查找,又易于实现元素的插入和删除操作。
    本节将介绍两种动态查找表:二叉排序树和平衡二叉树

  • 7.4哈希查找

    本节主要介绍:
    1、哈希表(Hash Table)查找方法的基本思想;
    2、构造哈希函数的常用方法;
    3、处理冲突的主要方法。

  • 第八章排序

    本章主要内容:
    1. 排序的基本概念;
    2. 插入排序方法,包括直接插入排序、折半插入排序及希尔排序;
    3. 交换排序方法,包括冒泡排序和快速排序;
    4. 选择排序方法,包括直接选择排序和堆排序;
    5. 归并排序 、 基数排序方法 ;
    6. 各种排序方法的优缺点和性能分析。

  • 8.1概述及插入排序

    本节主要介绍:
    1、排序的基本概念;
    2、直接插入排序、希尔排序的算法思想,以及算法实现。
    希尔排序是对直接插入排序的改进方法。

  • 8.2交换排序

    本节主要介绍:
    1、冒泡排序的算法思想和算法实现;
    2、快速排序的算法思想和算法实现;
    快速排序是对冒泡排序方法的改进。

  • 8.3选择排序

    本节主要介绍两种选择排序方法:
    1、简单选择排序的算法思想和算法实现;
    2、堆排序的算法思想和算法实现。
    注意对比分析二者的不同,堆排序是如何对简单排序方法进行的改进。

  • 8.4归并排序

    本节主要介绍归并排序的算法思想,归并排序是外排序的基础。

  • 8.5基数排序

    本节主要介绍基数排序的算法思想。

  • 8.6排序方法的比较

    本节对多种排序方法进行了对比分析,主要从时间复杂度、空间复杂度和稳定性方法进行了对比分析。

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

    1.1 什么是数据结构

    1.2 数据结构的概念和术语

    1.3 数据类型和抽象数据类型

    1.4 算法和算法描述

    1.5 算法效率的度量

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

    2.1 线性表的定义及抽象数据类型

    2.2 线性表的顺序存储与实现

    2.3 线性表的链式存储与实现

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

    3.1

    3.2 栈的应用举例

    3.3 队列

    3.4 队列应用举例

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

    4.1 串的定义

    4.2 串的表示和实现

    4.3 数组

    4.4 广义表

    视频数12
  • 第五章  作业测试
    第五章 树和二叉树

    5.1 树的基本概念

    5.2 二叉树

    5.3 二叉树的遍历

    5.4 线索二叉树

    5.5 树和森林

    5.6 哈夫曼树及其应用

    5.7 本章小结

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

    6.1 图的定义和术语

    6.2 图的存储结构

    6.3 图的遍历

    6.4 图的应用

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

    7.1 查找的基本概念

    7.2 静态查找方法

    7.3 动态查找

    7.4 哈希查找

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

    8.1 概述及插入排序

    8.2 交换排序

    8.3 选择排序

    8.4 归并排序

    8.5 基数排序

    8.6 排序方法的比较

    视频数9
  • 期末考试