第一章 算法基础
算法复杂度计算
神奇的兔子数列
第二章 线性表
链表
链表实例
第三章 栈与队列
栈
队列
第四章 数组
数组
特殊矩阵的压缩存储
第五章 字符串
字符串
KMP算法
第六章 二叉树
二叉树存储
二叉树遍历
第七章 树+贪心
哈夫曼树
哈夫曼编码
第八章 图的存储
邻接矩阵
邻接表
第九章 图搜索
深度优先搜索
广度优先搜索
第十章 图的连通性
连通分量
Tarjan算法
第十一章 图+贪心
最短路径
Dijkstra、Floyd算法
最小生成树
Prim、Kruskal算法
第十二章 图的应用
拓扑排序
关键路径
第十三章 查找+分治
折半查找
哈希表
第十四章 数表查找
二叉搜索树
平衡二叉树
第十五章 简单排序
插入排序
冒泡排序
第十六章 排序+分治
快速排序
归并排序
第十七章 树形排序
选择排序
堆排序
第十八章 分配排序
桶排序
基数排序
第十九章 高级数据结构
并查找
优先队列
树状数组
线段树
倍增、ST表、RMQ
LCA
Treap树
树链剖分
字典树
后缀数组
分块
点分治
边分治
AC自动机
B-树
红黑树
伸展树Splay
K-D树
动态树
左偏树(可合并堆)
SBT树
跳表
树套树
可持久化数据结构
第二十章 贪心+动态规划
背包问题
第二十一章 动态规划
线性DP
最长公共子序列、最长上升子序列
树形DP
背包类树形DP
区间DP
矩阵连乘、石子合并
数位DP
数字游戏
状态压缩DP
旅行商
插头DP
第二十二章 动态规划优化
倍增优化
数据结构优化
单调队列优化
斜率优化
四边不等式优化
第二十三章 深度搜索应用
回溯法
背包
地图着色
n皇后
最优加工顺序
第二十四章 广度搜索应用
背包
旅行商问题
第二十五章 启发式搜索
A*搜索
第二十六章 最大流
最短增广路算法
Dinic算法
第二十七章 最大流改进算法
标签算法ISPA
第二十八章 二分图最大匹配
配对方案
匈牙利算法
第二十九章 最大流最小割
最大收益
方格取数
第三十章 最小费用最大流
最小费用路算法
消圈算法