📄

第 1 讲 · 数据结构与算法复杂度

从逻辑结构、存储结构和操作出发,学会判断算法的时间与空间代价。

📄

第 2 讲 · 程序设计、递归与调试

把问题拆成模块,用递归描述重复结构,并从第一处错误状态开始调试。

📄

第 3 讲 · 数组、字符串与文件

理解连续内存、C 字符串边界和文件流,让数据从输入稳定走到输出。

📄

第 4 讲 · 指针、结构与动态内存

用地址建立动态结构,理清数组指针、结构指针和内存生命周期。

📄

第 5 讲 · 线性表与链表

比较顺序表和链表,并用指针不变量掌握单链表、循环链表和双向链表。

📄

第 6 讲 · 矩阵、广义表与串匹配

从多维数组的地址映射到稀疏矩阵、广义表,再理解 KMP 如何避免重复比较。

📄

第 7 讲 · 栈与队列

从受限线性表出发,掌握表达式、递归、循环队列和广度优先处理。

📄

第 8 讲 · 树、二叉树与遍历

理清树的术语、二叉树性质、存储方式以及四种遍历的统一逻辑。

📄

第 9 讲 · 搜索树、堆与哈夫曼编码

掌握二叉搜索树、AVL、堆、表达式树、线索树和哈夫曼树的用途与不变量。

📄

第 10 讲 · 图、遍历与网络算法

从图的表示出发,理解 DFS、BFS、最小生成树、最短路径、拓扑排序和关键路径。

📄

第 11 讲 · 查找、索引与散列

比较顺序、折半、树形、索引和散列查找,理解 ASL 与冲突处理。

📄

第 12 讲 · 排序算法

用每趟不变量理解插入、选择、冒泡、希尔、堆、归并和快速排序。

评论