“在有根树中,根的深度固定为 $0$。对节点 $v$ 和目标深度 $d$,定义”
形式陈述 ​
有根树是二元组
若顶点
由
祖先关系
直觉 ​
无根树只告诉我们哪些顶点相连;选定根以后,每条边才获得“向上/向下”的方向。父亲、深度、子树和祖先都依赖这个选择,而不是树本身固有的标签。
根把树变成一套层级坐标系。沿父指针反复上跳必在有限步内到达根;沿孩子边向下则不会回到先前节点。树的无环性保证这种层级没有矛盾,连通性保证每个顶点都有唯一根路径。
例子与边界 ​
设边为
取根
在一般有向无环图中,一个节点可能有多个父亲,两个节点也可能有多个互不比较的最低公共祖先;树中唯一根路径提供的结论不再成立。根树还不自动带孩子次序:若需要“第一个孩子”或括号序列编码,必须额外指定有序根树结构。
推论与应用 ​
根到任意顶点的简单路径唯一,来自树的等价刻画中“连通且无环”等价于“两点间恰有一条简单路径”。父节点、深度和祖先关系都建立在这条唯一性上。
树的唯一简单路径性质保证父亲和祖先定义良好。祖先偏序直接定义最近公共祖先与 Level Ancestor 查询;深度和子树区间支撑 Euler Tour、重链剖分与树上动态规划。
把父亲函数视为从非根顶点到顶点的映射,可用二进制倍增预计算
参考资料
- Reinhard Diestel, Graph Theory, 5th ed., Springer, 2017, §1.5.
- Thomas H. Cormen et al., Introduction to Algorithms, 4th ed., MIT Press, 2022, Chapters 20 and 22.
- Douglas B. West, Introduction to Graph Theory, 2nd ed., Prentice Hall, 2001, §4.1.