前言第1章 本书的使用方法 1第2章 C/C 快速入门 22.1 基本数据类型 22.2 顺序结构 22.3 条件结构 22.4 循环结构 22.5 数 组 32.6 函 数 32.7 指 针 32.8 结构体(struct)的使用 32.9 补 充 32.10 黑盒测试 4第3章 入门篇(1)——入门模拟 53.1 简单模拟 53.2 查找元素 293.3 图形输出 433.4 日期处理 503.5 进制转换 503.6 字符串处理 58第4章 入门篇(2)——算法初步 874.1 排 序 874.2 散 列 1284.3 递 归 1484.4 贪 心 1484.5 二 分 1654.6 two pointers 1764.7 其他高效技巧与算法 184第5章 入门篇(3)——数学问题 1895.1 简单数学 1895.2 公约数与小公倍数 2015.3 分数的四则运算 2035.4 素 数 2095.5 质因子分解 2185.6 大整数运算 2235.7 扩展欧几里得算法 2315.8 组合数 231第6章 C 标准模板库(STL)介绍 2326.1 vector的常见用法详解 2326.2 set的常见用法详解 2386.3 string的常见用法详解 2416.4 map的常用用法详解 2446.5 queue的常见用法详解 2566.6 priority_queue的常见用法详解 2566.7 stack的常见用法详解 2576.8 pair的常见用法详解 2576.9 algorithm头文件下常用函数介绍 257第7章 提高篇(1)——数据结构专题(1) 2587.1 栈的应用 2587.2 队列的应用 2617.3 链表处理 264第8章 提高篇(2)——搜索专题 2788.1 深度优先搜索(DFS) 2788.2 广度优先搜索(BFS) 281第9章 提高篇(3)——数据结构专题(2) 2869.1 树与二叉树 2869.2 二叉树的遍历 2869.3 树的遍历 2969.4 二叉查找树(BST) 3169.5 平衡二叉树(AVL树) 3259.6 并查集 3299.7 堆 3339.8 赫夫曼树 337第10章 提高篇(4)——图算法专题 33810.1 图的定义和相关术语 33810.2 图的存储 33810.3 图的遍历 33810.4 短路径 35710.5 小生成树 38510.6 拓扑排序 38610.7 关键路径 386第11章 提高篇(5)——动态规划专题 38711.1 动态规划的递归写法和递推写法 38711.2 连续子序列和 38711.3 长不下降子序列(LIS) 39011.4 长公共子序列(LCS) 39211.5 长回文子串 39411.6 DAG长路 39611.7 背包问题 39611.8 总 结 399第12章 提高篇(6)——字符串专题 40012.1 字符串hash 40012.2 KMP算法 402第13章 专题扩展 40313.1 分块思想 40313.2 树状数组 40613.3 快乐模拟 408附 录 430