最近公共祖先的高效评估
1. 相关概念定义
1.1 最大 k 连续叶子元素
对于树 T,若序列 C 不存在 k 连续叶子元素 C’ 使得 |C| < |C’|,则称 C 为 T 的最大 k 连续叶子元素,记为 Mk。
1.2 RValue
设 Lmax 为树 T 的最大层级。层级 ℓ 的 RValue(记为 Rℓ)定义如下:
- 若 ℓ = Lmax - 1,则 Rℓ = 1;
- 若 0 < ℓ < Lmax - 1,则 Rℓ = 2Rℓ + 1 × |Mℓ + 1| + 1。
例如,对于某 XML 树,Lmax = 5,|M1|、|M2|、|M3| 和 |M4| 分别为 9、4、1 和 1,则:
- R4 = 1
- R3 = 3
- R2 = 2 × 3 × |M3| + 1 = 7
- R1 = 2 × 7 × |M2| + 1 = 57
为便于评估 XPATH 查询,DocumentRValue 中的 RValue 属性存储的是 Rℓ−1 / 2 + 1 而非 Rℓ。
1.3 DeweyOrderSum
DeweyOrderSum 用于使用单个值对元素及其祖先的顺序信息进行编码。对于树 T 中层级为 ℓ 的叶子元素 n,若 a 是 n 的祖先或 n 本身,k 是 a 的层级,且 a 是其父节点的第 i 个子节点,则 Ord(n, k) = i。n 的 DeweyOrderSum(n.DeweyOrderSum)定义为:
[n.DeweyOrderSum = \sum_{j
超级会员免费看
订阅专栏 解锁全文
840

被折叠的 条评论
为什么被折叠?



