红黑树的添加
红黑树的添加
发布时间:2025-09-03 16:23:40
红黑树的添加
已知在B树中,新元素必定是添加到叶子节点中的,并且4阶B树所有节点的元素个数x都符合1 <= x <= 3
建议新添加的节点默认为RED,这样能够让红黑树的性质尽快满足(性质1、2、3、5都满足,性质4不一定),如果添加的是根节点染成BLACK即可
由于添加一定是添加到叶子节点,而叶子节点一共有4种情况:红黑红、黑红、红黑、黑,因此新添加的元素一共有12种添加情况:
无需操作直接添加:
LL/RR情况(叔父节点不是RED):将parent染成BLACK,grand染成RED,接着grand进行单旋操作,具体就是LL情况进行右旋,RR情况进行左旋
LR/RL情况(叔父节点不是RED):将自己染成BLACK,grand染成RED,接着进行双旋操作,具体就是LR情况parent进行左旋grand进行右旋,RL情况parent进行右旋grand进行左旋
上溢LL/RR/LR/RL情况(叔父节点是RED):将parent和uncle染成BLACK,grand向上合并,而grand在向上合并的时候染成RED,当做是新添加的节点进行处理,如果继续发生上溢,当上溢至根节点时,只需要将中间的元素上升为新的根节点并将根节点染成BLACK即可