基于顶树的树压缩技术及导航查询支持
顶树构建与相关性质
在树处理的领域中,顶树的构建是一个关键步骤。对于树 $T$ ,通过贪心算法构建顶树,会有以下几种情况分析:
- 情况 2 :假设节点 $v_i$ 没有子节点(即它是叶子节点)且没有兄弟节点(即 $p(v_i)$ 只有一个子节点)。在步骤 2 中不将 $(v_i, p(v_i))$ 与 $(p(v_i), p(p(v_i)))$ 合并的唯一原因是 $(p(v_i), p(p(v_i)))$ 在步骤 1 中刚刚被合并。此时,我们设定 $f(v_i, p(v_i)) = (p(v_i), p(p(v_i)))$。因为 $p(v_i)$ 不是叶子节点,所以在情况 1 中不会对 $(p(v_i), p(p(v_i)))$ 进行处理。
- 情况 3 :假设节点 $v_i$ 恰好有一个子节点 $c(v_i)$ ,并且 $(v_i, p(v_i))$ 在步骤 1 中未被合并。在步骤 2 中不将 $(v_i, p(v_i))$ 与 $(c(v_i), v_i)$ 合并的唯一原因是 $c(v_i)$ 只有一个子节点 $c(c(v_i))$ ,并且我们刚刚将 $(c(v_i), v_i)$ 与 $(c(c(v_i)), c(v_i))$ 合并。此时,我们设定 $f(v_i, p(v_i)) = (c(v_i), v_i)$。由于 $c(v_i)$ 不是叶子节点,所以在情况 1 中不会对 $(c(v_i), v_i)$ 进行处理;又因为 $v_i$ 只有一个子节点,所以在情况 2 中也不会对 $(c(v_i), v_i)$ 进行处理。
基于上述构建规则,有如下重要结论: <
超级会员免费看
订阅专栏 解锁全文

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



