数据结构与算法
数据结构与算法
1万+ 人选课
更新日期:2025/06/06
开课时间2025/02/17 - 2025/06/23
课程周期18 周
开课状态开课中
每周学时-
课程简介

 

数据结构与算法是计算机类专业的专业技术基础课程、核心课程,也是其他爱好编程同学必学的一门专业基础课程。它所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其它课程,还是对从事软件工程的开发,都有着不可替代的作用。

     课程主要介绍如何合理地组织数据、有效的存储和处理数据,正确的设计算法以及对算法的分析和评价。通过本课程的学习,要求学生掌握根据各类实际问题,归纳、抽象出数据对象的数据特征及对象间的相互联系,选择合适的数据组织方法和存储方法,设计并实现高效的求解算法。本课程首先综述数据、数据结构和抽象数据类型等基本概念,再从数据类型的角度,分别讨论线性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用;以及从时间上进行定性和定量的分析和比较了各种查找和排序方法。课程学习的基本数据结构及相关算法是程序设计的基础,培养学生基本的、良好的程序设计技能,为后续专业课程的学习打下坚实的基础。

       课程针对实践性强的特点,由简入繁循序渐进的带领学生一行一行实现算法,例题中针对问题描述,分析问题,得出解决方案,到代码的实现,展现完整的过程,让同学们一步一台阶跨上去,达到解决复杂问题的高度。课程配合在线编程题型的作业及客观题型的测试,从实践和理论两个维度进行过程性评测。

课程大纲

第一章 绪论

1.1 什么是数据结构?如何学习数据结构?(09:36)

1.2 算法的定义、描述及分析(15:24)

第一章 绪论单元测验

第二章 - 顺序表

2.1 顺序表的表示及定义(07:09)

2.2 顺序表的基本操作(08:20)

第二章 链表及实例应用

2.3 链表定义及建立(10:49)

2.4 链表基本操作(7:32)

2.5 循环链表及双向链表(14:11)

2.6 线性表应用举例(5:34)

2.7 应用举例 -约瑟夫及多项式求和(9:55)

第二章 线性表单元测验

第三章 栈和队列—— 栈的定义及其应用

3.1 栈的表示与实现(07:54)

3.2 栈的应用(数制转换及括弧匹配09:10,表达式计算09:26)

第三章 栈和队列——队列的定义及其实现

3.3 队列的表示与实现(07:56)

第三章 栈和队列单元测试

第四章 串

4.1 串的定义与实现(09: 26)

4.2 串的模式匹配(BF算法 05:17,KMP算法08:10)

第四章 串单元测验

第五章 数组和广义表

5.1 数组与矩阵的压缩存储(09:44)

5.2 稀疏矩阵的转置.(06:40)

5.3 广义表的表示(07:34)

第五章 数组与广义表单元测验

第六章 树与二叉树(一)

6.1 树的定义及术语(07:22)

6.2 二叉树及其性质(10:22)

6.3 遍历二叉树(递归方法10:12,非递归方法09:40)

第六章 树与二叉树(二)

6.4 线索二叉树&树与森林(10:52)

6.5 哈夫曼树及其应用(哈夫曼树及哈夫曼编码07:51,算法实现09:04 )

第六章 树与二叉树 单元测验

第七章 图(一)

7.1 图的基本概念(08:23)

7.2 图的表示和实现(09:27)

7.3 图的遍历(09:43)

第七章 图(二)

7.4.1 最小生成树-Prim算法(11:04)

7.4.2 最小生成树-Kruskal算法(09:46)

7.4.3 单源点最短路径Dijkstra算法(11:36)

7.4.4 所有顶点间的最短路径Floyd算法(10:17)

7.4.5 拓扑排序(11:37)

7.4.6 关键路径(11:12)

第七章 图 单元测验

第八章 查找(线性查找、二叉排序树)

8.1 线性查找(09:08)

8.2 树表查找-二叉排序树(08:56)

第八章 查找(平衡二叉树、哈希查找)

8.3 树表查找-平衡二叉树(11:17)

8.4 哈希查找(13:54)

第九章 排序(排序定义、直接插入排序、选择排序、希尔排序)

9.1 排序定义及简单排序

第九章 排序(冒泡排序、快速排序、堆排序、归并排序、基数排序)

9.2 交换类排序(冒泡排序、快速排序)

9.3 堆排序

9.4 归并排序和基数排序