《数据结构与算法》课程是计算机科学与技术的学科基础课程,不仅是《计算机图形学》、《计算机网络》、《编译原理》、《计算机操作系统》等后续课程的基础理论之一,其应用范围也早已扩展到图像处理与模式识别、海量数据挖掘、科学数据处理、复杂网络分析等许多计算机前沿领域。
本课程研究计算机处理数据的结构特性,学习线性表、树、图等常用数据结构的逻辑结构与存储结构;学习分治递归、动态规划、贪心算法等典型算法,掌握分析与推导算法效率的方法。
通过对本课程的学习,能够解决非数值计算与工程应用问题,达到选择或设计恰当的逻辑结构、存储结构及相应的算法的水平,为学生进一步理论学习和解决实际工程应用问题打下坚实的基础。通过理论知识的系统学习与工程实验的操作,初步培养学生的计算思维能力、算法设计与分析能力、程序设计与编程实现能力、计算机系统的认知、分析、设计和运用能力、工程实践能力。
课程由3位经验丰富的老师讲解,学生反馈通俗易懂,获得感强,没有专业基础的小白也能够听懂,考试形式好,教师回答学生问题积极,讨论区活跃能够学到很多东西,能够对问题得到及时有用的解答。课程每一期都根据教学经验和学生反馈进行改进,目前已经很完善。
第一章 绪论
1-教学安排
2-数据结构基本概念,术语与主要学习内容
3-算法
绪论测验
第二章2.1 线性表 (本章内容比较多,需要2周的学习时间)
1-线性表的基本概念
2-基于线性表操作的简单应用
3-线性表的存储结构及基本操作实现
4-线性表的应用
5-栈
6-队列
临时补充内容:7-线性表的基本操作编程视频(请尽量自己实现)
线性表测验
线性表编程题
第二章 2.2 查找
1-查找基本概念
2-顺序查找
3-折半查找
4-索引查找
5-哈希查找
查找问题讨论
查找测验
查找编程题
第二章 2.3 排序
1-排序的基本概念
2-插入排序
3-选择排序
4-交换排序
5-基数排序
6-外部排序
排序编程题
排序测验
第三章 递归与分治
1-递归
2-分治
3-复杂度计算
4-应用
递归与分治测验
递归与分治编程题
第四章 树与二叉树 (本章内容需要2周学习时间)
1-引子
2-二叉树的定义与复原
3-二叉树的变形
4-树与二叉树的相互转换
临时补充:AVL树
补充:高级查找
树与二叉树
数与二叉树编程题
第五章 图论与贪心算法(本章内容需要2周学习时间)
1-图论的基本概念
2-贪心算法理论
3-图论与贪心算法的应用
贪心算法与图论编程题
贪心算法与图论测验
第六章 动态规划
1-引言
2-动态规划理论
3-动态规划例子-矩阵连乘
4-动态规划要素
5-备忘录法
6-项目实战
7-总结
动态规划测验
动态规划编程题
第二部分 数据结构全面复习
1-线性表
2-树
3-图
4-查找与排序