“数据结构与算法设计”是计算机科学及相关专业重要的专业基础课程。课程讲解经典数据结构实现的原理和方法,是后续专业课程非常重要的基础。在实践中用计算机解决问题的方法往往有多种,不同方法的效率、适应范围也有所不同。算法的时间和空间效率不仅跟数据的组织方式有关,也和采用的算法技术、程序处理流程有关。在这门课程中我们会介绍数据的组织方法、算法设计技术、时间和空间效率的概念及其分析方法,学习这门课程使学生掌握数据的组织方式和程序实现技术,能够针对应用背景分析、选择合适的数据结构解决实际问题,从而提高学生的高级程序设计能力。
Overview
Syllabus
- 第一章 绪论
- 1.1 为什么要学习数据结构
- 1.2 数据结构概念术语
- 1.3 抽象数据类型及其表示
- 1.4 算法
- 1.5 算法效率分析
- 第二章 线性表
- 2.1 线性表的定义
- 2.2 线性表的顺序存储结构
- 2.3 线性表的链式存储结构
- 2.4 带头结点的单链表的实现
- 2.5 其他类型的链表
- 2.6 多项式抽象数据类型的实现
- 第三章 字符串和数组
- 3.1 字符串抽象数据类型及实现
- 3.2 字符串的模式匹配
- 3.3 数组的逻辑结构及实现
- 3.4 特殊矩阵
- 3.5 稀疏矩阵
- 第四章 栈和队列
- 4.1 栈及其实现
- 4.2 栈的应用
- 4.3 队列及其实现
- 4.4 队列的应用
- 第五章 递归
- 5.1 递归程序设计
- 5.2 递归过程和运行时栈
- 5.3 经典回溯问题设计
- 第六章 树和二叉树
- 6.1 树的概念
- 6.2 二叉树及其性质
- 6.3 二叉树的存储结构及其实现
- 6.4 二叉树的遍历
- 6.5 二叉树的非递归遍历
- 6.6 线索二叉树
- 6.7 二叉堆
- 6.8 哈夫曼树
- 6.9 树和森林的实现
- 第七章 查找
- 7.1 查找问题的定义
- 7.2 顺序查找
- 7.3 折半查找
- 7.4 分块查找
- 7.5 二叉搜索树
- 7.6 AVL树
- 7.7 B-树
- 第八章 图
- 8.1 图的定义
- 8.2 图的存储结构
- 8.3 图的遍历
- 8.4 最小生成树
- 8.5 最短路径
- 8.6 拓扑排序
- 8.7 关键路径
- 第九章 排序
- 9.1 排序的问题定义
- 9.2 基于插入的排序算法
- 9.3 希尔排序
- 9.4 基于交换的排序算法
- 9.5 基于选择的排序算法
- 9.6 堆排序
- 9.7 归并排序
- 9.8 基数排序
- 9.9 各种排序算法比较
- 第十章 哈希表
- 10.1 哈希表
- 10.2 冲突的解决方法
- 10.3 哈希表的实现与性能分析
- 课程考试
Taught by
Zhang Yichuan, Zhang Li, and Dong Ao shuang