Appearance
附录 D · 学习路径与备考规划
面向已通过五级、准备攻克六级的读者:知识地图 → 三阶段路径 → 8 周计划 → 自测清单 → 考场时间分配 → 五级→六级衔接 → 向七级衔接。
一、知识地图(依赖关系的正确顺序)
第1章 总览(先建立全局视野)
│
├─> 第7章 栈与队列 ──────────┐
│ (BFS 要用队列) │
│ ↓
├─> 第2章 树与遍历 ──> 第3章 哈夫曼树与特殊树
│ │
│ ↓
│ 第4章 搜索算法(DFS/BFS/回溯)
│ │
│ ↓
└─> 第5章 简单动态规划(一维DP + 背包)
│
└─> 第6章 面向对象(相对独立,可穿插学习)推荐顺序(兼顾依赖与难度): 第1章 → 第7章(栈队列)→ 第2章(树)→ 第3章(特殊树与编码)→ 第4章(搜索)→ 第5章(DP)→ 第6章(OOP)
第 6 章面向对象与其他章耦合度低,可以放在任意位置;若时间紧张,建议放在最后集中突破(记忆型考点多,遗忘快)。
二、三阶段路径
| 阶段 | 目标 | 产出 |
|---|---|---|
| 第一阶段 · 建骨架(2~3 周) | 弄清六个知识块的"是什么、为什么、怎么写" | 每章的必背速记卡能默写 |
| 第二阶段 · 刷题固形(3~4 周) | 每章「实战练习」全部做完并订正 | 错题本成型,套路可复述 |
| 第三阶段 · 模考冲刺(1~2 周) | 限时做整套,练时间分配与心态 | 稳定达到 70+ 分 |
三、8 周计划(每周约 6~8 小时)
| 周次 | 章节 | 重点任务 | 验收标准 |
|---|---|---|---|
| 第 1 周 | 第 1 章 + 第 7 章前半 | 总览过一遍;栈的性质与基本操作 | 能手算栈的出栈序列合法性 |
| 第 2 周 | 第 7 章后半 | 队列、循环队列下标计算、优先队列 | 循环队列四个公式全对 |
| 第 3 周 | 第 2 章 | 树的术语、性质、四种遍历 | 三种递归遍历能手写 |
| 第 4 周 | 第 2 章末 + 第 3 章前半 | 遍历序列还原;哈夫曼树构造与 WPL | 前序+中序还原 3 道题全对 |
| 第 5 周 | 第 3 章后半 | 完全二叉树编号、BST、哈夫曼编码、格雷码 | BST 删除两孩情况能口述 |
| 第 6 周 | 第 4 章 | DFS/BFS/回溯/visited/迷宫 | 独立写出迷宫最短路 |
| 第 7 周 | 第 5 章 | 一维 DP、01 背包、完全背包 | 01 背包一维倒序能默写 |
| 第 8 周 | 第 6 章 + 全书复盘 | 封装/继承/多态、构造析构顺序;两套限时卷 | 自测清单全打勾 |
四、自测清单(第 8 周使用,全打勾即可报名)
- [ ] 1. 能脱口而出二叉树的五条性质(含
n₀ = n₂ + 1) - [ ] 2. 给定前序 + 中序,能在 3 分钟内还原树并写出后序
- [ ] 3. 能手工构造哈夫曼树并计算 WPL(两种算法都对得上)
- [ ] 4. 完全二叉树:给定编号 i,能立刻说出父/左/右编号
- [ ] 5. 能说明"为什么 BST 的中序遍历是升序"
- [ ] 6. 能写出
G(n) = n ^ (n>>1)并解释格雷码的特点 - [ ] 7. 能不看模板写出 DFS 递归与 BFS 队列两套框架
- [ ] 8. 能写出迷宫最短步数的完整程序(含
visited与边界判断) - [ ] 9. 能默写 01 背包一维优化(倒序)与完全背包一维(正序)
- [ ] 10. 能说清 DP 与贪心的区别,并举出一个贪心失败的反例
- [ ] 11. 能写出一个带构造/析构/虚函数的最小类,并预测输出顺序
- [ ] 12. 能默写循环队列的判空、判满、求元素个数三个公式
- [ ] 13. 能独立完成括号匹配(栈)与层序遍历(队列)
- [ ] 14. 两套自测卷均在 150 分钟内完成,得分 ≥ 70
五、考场时间分配(180 分钟)
| 阶段 | 时长 | 做什么 |
|---|---|---|
| 审题与单选 | 0~35 分钟 | 15 道单选,平均 2 分钟/道,卡住先跳过 |
| 判断题 | 35~55 分钟 | 10 道判断,注意"一定/必须/所有"等绝对词 |
| 编程题审题 | 55~70 分钟 | 两道题一起读,先做有把握的那道 |
| 编程题 1 | 70~110 分钟 | 编码 + 自测样例 + 边界 |
| 编程题 2 | 110~155 分钟 | 同上,至少保证暴力/部分分 |
| 检查 | 155~180 分钟 | 复查选择题填涂、文件名、输入输出格式 |
⚠️ 最容易丢分的不是算法,是格式:文件名、输入方式、
freopen、输出末尾换行——每年都有人栽在这里。
六、常见备考误区
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 只看不写 | 看懂了但写不出 | 每个模板至少手写 3 遍,脱离 IDE 也要能写 |
| 死记遍历顺序 | 遇到程序阅读题就懵 | 用"根什么时候被访问"来记,而不是硬背 |
| 循环队列公式靠感觉 | 选择题必错 | 四个公式抄在纸上,每天默写一遍 |
| 背包方向靠猜 | 01/完全背反 | 记住理由:倒序是为了防止同一件物品被选两次 |
| 学完 OOP 就放着 | 考前全忘 | OOP 记忆型考点多,安排在最后 2 周 |
| 只在脑子里调试 | 上机就错 | 每题都要真跑一遍,至少测 3 组样例 |
七、五级 → 六级衔接自测(先修知识)
六级默认你已经掌握以下五级内容。若有 3 项以上打不了勾,请先回头补五级。
| # | 先修点 | 自测题 | ✅ |
|---|---|---|---|
| 1 | 数组与vector 基本操作 | 能写出数组逆序、去重、计数 | ⬜ |
| 2 | 递归 | 能写出斐波那契递归并说出其复杂度 O(2ⁿ) | ⬜ |
| 3 | 快速排序 / 归并排序 | 能手写出其中一个,并说出 O(n log n) | ⬜ |
| 4 | 二分查找 | 能在有序数组中写对 while (l <= r) 的边界 | ⬜ |
| 5 | 结构体 struct | 能定义结构体数组并排序 | ⬜ |
| 6 | 时间复杂度估算 | 能判断两层嵌套循环的复杂度 | ⬜ |
| 7 | 贪心基本思想 | 能举出活动安排问题的贪心策略 | ⬜ |
| 8 | 指针与引用的初步 | 能解释"传值"与"传引用"的区别 | ⬜ |
💡 衔接提示:六级的三大难点是树的递归思维、DP 的状态定义、循环队列的下标取模。前两者本质是"递归 + 抽象",正是五级的延伸;第三者纯靠手算熟练度。
八、通过之后:向七级衔接
七级在六级基础上的新增内容:
| 七级知识块 | 与六级的衔接点 |
|---|---|
| 数学库函数 | 新增:<cmath> 的三角/对数/指数函数,弧度制是最大坑 |
| 复杂动态规划 | 六级的一维 DP → 二维 DP、区间 DP、LIS、LCS、滚动数组 |
| 图的定义及遍历 | 六级的树 → 一般图;DFS/BFS 从树上扩展到图上 |
| 图论算法(泛洪) | 六级的连通块 → Flood Fill 四连通/八连通 |
| 哈希表 | 全新:unordered_map / 冲突处理 / 装填因子 |
过渡期两周计划:
- 第 1 周:把六级的 DFS/BFS 从"树"迁移到"图"(邻接矩阵 + 邻接表),这是七级的地基;
- 第 2 周:把一维 DP 升级为二维 DP(网格路径 + LCS),预习
<cmath>常用函数。
本规划按每周 6~8 小时设计;若每天只能学 30 分钟,请把周期拉长到 12~16 周。
