WBLT学习笔记

我是FHQ单推人,但我还是得学WBLT。

引入

WBLT ( Weight Balanced Leafy Tree ) 顾名思义是 Weight Balanced Tree 和 Leafy Tree 的结合。
Weight Balanced Tree 的每个结点储存这个结点下子树的大小,并且通过保持左右子树的大小关系在一定范围来保证树高。
Leafy Tree 维护的原始信息仅存储在树的 叶子节点 上,而非叶子节点仅用于维护子节点信息和维持数据结构的形态。我们熟知的线段树就是一种 Leafy Tree。———OI-wiki

学的主要原因是FHQ的可持久化不好写但好像WBLT也不好写

平衡方式

一个WBLT树的节点需要保留如下信息:

  • sz[u]子树大小。
  • l[u]r[u]左右儿子。
  • key[u]键值。

因为只有叶子节点实际存储键值,所以其他节点处存储的信息是由它们的子节点合并得到的,以方便后续查询。
一般将儿子中较大的键值存于根节点。

\(\alpha\) - 平衡的概念

定义一个非叶子节点 \(u\) 的平衡度

\[\rho(u)=\dfrac{\min\{sz_{lson_u},sz_{rson_u}\}}{sz_u} \]

对于 \(\alpha \in (0,\frac{1}{2}]\),若某一节点 \(u\) 的平衡度满足 \(\rho(u) \geq \alpha \),则称该节点 \(\alpha\) - 平衡。线段树的每一个节点都满足 \(\frac{1}{2}\) - 平衡。
没空学,先咕咕咕。

posted @ 2025-08-11 20:38  tanshunyu  阅读(18)  评论(0)    收藏  举报
//雪花飘落效果