Skip to content

Docs/ch04 tree problem solving - #192

Open
yz4787662-web wants to merge 2 commits into
mainfrom
docs/ch04-tree-problem-solving
Open

yz4787662-web wants to merge 2 commits into
mainfrom
docs/ch04-tree-problem-solving

Conversation

@yz4787662-web

Copy link
Copy Markdown
Collaborator

这次更新解决什么

  1. 读者痛点与解题断层

    • 读者在学完二叉树基本遍历后,面对代码题广泛采用的含 null 占位符层序序列化输入(如 1 2 3 4 5 null 7),常缺乏统一的建树与解析模型,在判定完全二叉树连续性时容易因粗心跳过空节点而导致误判;
    • 从二叉指针跨越至多叉图论树时,面对“带权树最优选址”等题型,极易陷入 $O(n^2)$ 多次重复遍历的暴力解法,难以建立“自底向上后序汇总 + 自顶向下先序换根”的树形动态规划(换根 DP)思维;
    • 第四章共 31 道练习题,缺乏一条清晰衔接二叉树到多叉树的阶梯式刷题路线。
  2. 解决目标与范围

    • 新增第 4.7 节教材正文《树结构代码题解析——从状态判定到换根模型》(content/chapter-04-tree/07-tree-problem-solving.md);
    • 重点解析 Lab 04-E-03(完全二叉树判定)Lab 04-E-29(网络最优选址 / 换根 DP) 两大经典解题模型;
    • 梳理全章 31 题四阶梯度训练路线,打通通往树上背包(E-28)、最小支配集(E-30)与树同构(E-31)的通用图论 DFS 底座。

改动内容

  • 新增 content/chapter-04-tree/07-tree-problem-solving.md,建立 4.7 小节,提供完全二叉树层序建树/判定代码、换根 DP 推导与规范实现、两次 DFS 时序因果分析、复杂度证明与易错点预警;
  • 更新 content/chapter-04-tree/00-overview.md,在“本章导览”中正式收录 4.7 小节;
  • 预生成并纳入 public/diagrams/ 中 4.7 节所需的 Graphviz SVG 图示缓存(graphviz-level-order-input-treegraphviz-rooted-tree-cost);
  • 同步重命名并更新 Obsidian 本地笔记对应章节文件,保持双端一致。

验证记录

  • 本地全量静态与内容检查:
    • node scripts/validate-content.mjs:通过,全书教材页面数平稳扩增至 89 篇,301 个 Lab,0 报错 0 告警;
    • pnpm run lint:通过,ESLint 无任何语法与样式报错;
    • pnpm run typecheck:通过,vue-tsc 0 报错;
  • VitePress 构建与站点审计:
    • pnpm run build:通过,89 篇教材 HTML 全量渲染成功,4.7 节两张 Graphviz 图示成功编译为 SVG;
    • node scripts/check-built-site.mjs:通过,458 个 HTML 产物全部通过单 H1、无死链、无 base 泄漏检查;
  • 新页面的导航、相对 .md 链接、公式、代码块和前后页跳转已检查;
  • 本地未运行项说明:pnpm run test:pages 因本地未预装 Windows Chromium Headless Shell 暂未全量执行,已交由 GitHub Actions CI 自动装载并跑通。

内容完成标准

  • 学习目标、范围与成熟度状态清楚(frontmatter status: draft, order: 7
  • 定义、复杂度与边界行为已人工核验(换根公式推导经 6 节点样例手工演算核对一致;明确标注 64 位 long long 防溢出与 parent 防环)
  • 示例或 Lab 已从头复现(Lab 04-E-03 与 Lab 04-E-29 算法均有完整可运行 C++ 参考实现)
  • 正文未硬编码 /DSA-Mastery/;相对 .md 链接与锚点(如 06-binary-tree-classic-problems.md#max-path-sum)经校验均真实存在
  • 正文、Lab、代码和测试术语一致(采用 subCost / totalCost 清晰领域命名)
  • 引用可追溯,第三方素材许可清楚

AI 使用与人工复核

  • AI 使用:辅助初稿排版格式规范化、公式 LaTeX 转写、Graphviz 图示源码编写及本地 CI 脚本核验;
  • 人工复核:人工严审了完全二叉树反序列化边界、逐行核验换根 DP 状态转移方程与 6 节点图示数值、人工增加了两次 DFS 递归时序因果(后序自底向上 vs 先序自顶向下)的关键深度解析。

Reviewer 重点关注

  1. 状态命名:换根 DP 中使用了具象的 subCost[u](辖区子树内部运输成本)与 totalCost[u](全网候选中心总成本),相比抽象的 dp/ans 显著提升可读性;
  2. 时序解析:2.4 小节后特别指出了 dfs1 先递归后汇总、dfs2 先转移后递归的时机差异,请评审该处叙述是否清晰明了;
  3. 分层路线:第 3 小节梳理的四阶段 31 题路线图是否契合课程后续节奏。

Closes #

@yz4787662-web
yz4787662-web marked this pull request as ready for review September 15, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant