插入红黑树

问题描述

纯粹从概念上讲,我如何将 21 插入到这棵红黑树中?

Tree

解决方法

  1. 您找到插入点。从 root 开始
Compare 21 with 25 => it is less => follow to left child
Compare 21 with 15 => it is more => follow to right child
Compare 21 with 22 => it is less => follow to left child
Compare 21 with 20 => it is more => there is no right child so you insert.
  1. 将节点插入为 RED 节点。现在有一个 Red Child-Red Parent 违规 父母 20 岁。祖父母 22 岁,叔叔 24 岁。 当父母和叔叔都是红色时,您可以通过翻转父母、祖父母和叔叔的颜色来修复违规。 现在考虑将祖父母作为要修复的新节点 (22)。它的父母是 15 岁,也是 RED,这是一个新的违规行为。
  2. 对于新违规:节点为 22,父母为 15,祖父母为 15,叔叔为 35。 当 Parent 为 RED 且 Uncle 为 BLACK 时,您可以通过旋转进行修复。 您会看到节点是否位于树的内部并围绕父节点 15 向左向外旋转。 22 成为 25 的新左孩子,颜色不变。
  3. 现在在树 25 的根部向右旋转,加上交换根部及其右孩子的颜色来修复树。

你应该有

New Red black Tree