数据结构
开课平台爱课程(中国大学MOOC)
开课高校华中科技大学
开课教师李国徽
学科专业计算机科学与技术
课程简介

       数据结构课程是面向计算机科学与技术、信息安全、物联网工程专业的本科学生开设的专业核心必修课程。通过本课程的学习,使学生熟练地掌握在程序设计应用中,特别是在软件系统的非数值计算类应用方面,常用数据模型以及实现方法;熟练建模的基本方法以及在计算机科学与工程中的基本应用;在高级语言程序设计课程的学习基础之上,进一步提高程序设计的综合能力;在理论和方法上,奠定后续专业课程学习的基础。  

      总之,学好数据结构就对了。数据结构就相当于:要拧螺母,肯定用扳手这个“数据结构”,当然用钳子也行,只不过也没那么好用。学习数据结构,就是为了了解以后在IT行业里搬砖需要用到什么工具,这些工具有什么利弊,应用于什么场景。以后用的过程中,你会发现这些基础的“工具”也存在着一些缺陷,你不满足于此工具,此时,你就开始自己在这些数据结构的基础上加以改造,这就叫做自定义数据结构。而且,你以后还会造出很多其他应用于实际场景的数据结构。

   本课程以清华大学严蔚敏教授编著的《数据结构(C语言版)》为教材,以章节划分知识点,每个知识点录制10分钟左右的视频,共有55个视频,每个章节知识点的列表可查看课程大纲。每章都有以考察知识点为目标的单元测试,以巩固、提高对基本知识的理解,并提供相应章节的PPT素材,供同学们深入学习。希望通过本课程,为学生学习后续课程打下扎实的基础。


课程大纲
第一章 绪论 课时目标:引入数据结构课程的学习,说明数据结构的相关概念,并概述算法的基本特性。 1.1 绪论 1.2 什么是数据结构 1.3 相关基本概念和术语 1.4 算法的基本特征 1.5 算法分析相关概念 第一章绪论单元测试 第二章 线性表 课时目标:数据结构中最基础的顺序表和链表的基本特性和算法。 2.1 线性表的概念以及抽象数据类型 2.2 线性表的顺序表示 2.3 顺序表的插入删除算法移动元素次数分析 2.4 顺序存储结构的优缺点引出单链表的结构类型定义 2.5 单链表的算法:生成先进先出单链表、后进先出单链表 2.6 单链表的算法 2.7 单链表的算法 2.8 单链表的合并 2.9 循环链表和双向循环链表的概念 第二章线性表单元测试 第三章 栈和队列 课时目标:栈和队列的数据结构和基本特性。 3.1 栈的相关概念与特性 3.2 顺序栈的基本操作 3.3 链式栈的基本操作 3.4 栈的应用 3.5 队列的相关概念 3.6 链式队列的基本操作 3.7 顺序队列的基本操作 第三章栈和队列单元测试 第五章 数组与广义表 课时目标:数组和广义表的数据结构和基本特征。 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 特殊矩阵的压缩存储 5.4 稀疏矩阵的压缩存储 5.5 稀疏矩阵的运算(转置算法) 5.6 广义表的概念 5.7 广义表的存储结构 第五章数组与广义表单元测试 第六章 树与二叉树 课时目标:树与二叉树两种典型层次结构的概念,特征,基本运算与实现,典型算法及简单应用。 6.1 树的定义 6.2 二叉树的定义与性质 6.3 二叉树的存储结构 6.4 二叉树的遍历 6.5 二叉树的遍历应用 6.6 线索二叉树 6.7 树的存储结构 6.8 树与二叉树的转换 6.9 哈夫曼树及其应用 第六章树单元测试 第七章 图 课时目标:图的基本特征、基本运算与实际应用。 7.1 图的定义及术语 7.2 图的存储结构 7.3 图的储存结构 (2)与图的遍历 7.4 图的连通性问题 7.5 有向无环图及应用 7.6 最短路径 第七章图单元测试 第九章 查找 课时目标:经典的查找算法主要策略和效率分析。 9.1 查找问题概述 9.2 顺序表的查找 9.3 折半查找法 9.4 分块查找法 9.5 二叉排序树查找法 9.6 平衡二叉排序树查找法 9.7 哈希查找法 第九章查找单元测试 第十章 内部排序 课时目标:经典的排序算法主要策略和性能分析。 10.1 查找问题概述、插入排序法 10.2 交换排序法 10.3 选择排序法 10.4 归并排序法 10.5 基数排序法 第十章内部排序单元测试