Skip to content

定义Definition

有根树与祖先关系

Rooted tree · Ancestor relation in a rooted tree · Parent and depth in a tree

在树中选定根后,由唯一根路径定义父子、祖先、深度与子树。

形式陈述 ​

有根树是二元组 (T,r),其中 T=(V,E) 是一棵树,r∈V 是指定的根。对任意 v≠r,由树的等价刻画,从 r 到 v 有唯一简单路径;该路径上紧邻 v、且更靠近根的顶点称为 v 的父亲,记为 parent(v);以 v 为父亲的顶点称为 v 的孩子。根没有父亲,其他顶点恰有一个父亲。

若顶点 u 位于从 r 到 v 的唯一简单路径上,则称 u 是 v 的祖先,记作 u⪯rv;此时 v 是 u 的后代。允许 u=v 时得到自反祖先关系;要求 u≠v 时称真祖先。顶点深度为

depthr(v)=distT(r,v).

这里距离 distT(r,v) 是唯一路径的边数,因此根的深度为 0,孩子的深度比父亲多 1。由 v 及其全部后代诱导的子图称为以 v 为根的子树,它自身以 v 为根。

祖先关系 ⪯r 是 V 上的偏序:每点在自己的根路径上,给出自反性;祖先的根路径是后代根路径的前缀,给出传递性;若两点互为祖先,它们的深度必须相同,因而是同一点,给出反对称性。任意顶点的祖先沿根路径全序排列。两个顶点至少共有根这个祖先,公共祖先正是两条根路径的公共前缀,因此一定具有唯一最深元素。

直觉

无根树只告诉我们哪些顶点相连;选定根以后,每条边才获得“向上/向下”的方向。父亲、深度、子树和祖先都依赖这个选择,而不是树本身固有的标签。

根把树变成一套层级坐标系。沿父指针反复上跳必在有限步内到达根;沿孩子边向下则不会回到先前节点。树的无环性保证这种层级没有矛盾,连通性保证每个顶点都有唯一根路径。

例子与边界

设边为

{1,2},{1,3},{2,4},{2,5}.

取根 1 时,先写出根到 4,5 的路径 1,2,4 与 1,2,5。两条路径在 2 处分叉,因而 2 是两点的父亲,也是它们最深的公共祖先。顶点 4 的祖先依次为 1,2,4,深度为 2;顶点 2 的子树含 2,4,5,却不含它的父亲 1。

若改取根 4,根到 3 的路径变成 4,2,1,3。父亲关系依次为 parent(2)=4、parent(1)=2、parent(3)=1,而 5 的父亲仍为 2。换根会翻转新旧根之间路径上的父子方向,不必翻转所有边。

这个结论依赖树的唯一路径。考虑有向无环图中的弧 r→a,r→b,a→x,a→y,b→x,b→y:a,b 都是 x,y 的公共祖先,但彼此不可达,也都没有更靠下的公共祖先。因此“最低公共祖先”有两个候选;仅有一个根和无有向圈还不够。根树还不自动带孩子次序:若需要“第一个孩子”或括号序列编码,必须额外指定有序根树结构。

推论与应用

上面公共前缀的最后一个顶点就是最近公共祖先;沿某个顶点的根路径回退指定步数,则得到 Level Ancestor 查询。深度与子树区间进一步支撑 Euler Tour、重链剖分与树上动态规划。

把父亲函数视为从非根顶点到顶点的映射,可用二进制倍增预计算 2k 级祖先。若深度优先遍历在首次进入顶点时依次编号,根为 1 的例子可得到顺序 1,2,4,5,3。遍历进入 2 后,会先访问完其全部后代,再返回 1;所以 2 的子树恰占连续位置 2,3,4。一般地,记首次进入位置为 tin(v),子树全部访问完时下一个可用位置为 tout(v),则 u 是 v 的祖先当且仅当

tin(u)≤tin(v)<tout(u).

这里采用左闭右开的区间约定;若程序对进入和退出都单独计时,应按那套时间戳定义改写判据。

根树还可用于编码嵌套微分。B-级数与根树阶条件让每个节点的分支数表示向量场的导数阶数,把 RK 的高阶展开转换成逐棵树的系数匹配;这里的树是微分结构索引,而非存储检索结构。

参考资料
  • Oscar Levin,Discrete Mathematics: An Open Introduction,第 4 版,开放在线教材,§2.2 Trees:树的刻画、生成树与有根树。
  • 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.
关系图谱15 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
分类位置

上位 / 更一般

下位 / 直接特例

暂未标注直接特例。

类型化关系