如何在 O(lg n) 中构建表示 K 的红黑树

问题描述

假设 K1 和 K2 是密钥集,k 是一个密钥,使得对于任何 k1 ∈ K1 和 k2 ∈ K2,我们有 k1

解决方法

如果 K1 和 K2 具有相同的黑色高度,那么我们将 k 作为新的(黑色)根,具有左子树 K1 和右子树 K2。

否则,我们必须沿着 K1 的右脊椎或 K2 的左脊椎下降才能找到与另一棵树具有相同黑色高度的子树。像上面一样合并这些树,除了让 k 变红,然后如果需要,应用通常的重新着色加旋转算法来修复违规。