图解红黑树
图解红黑树 一、红黑树的五条规则 红黑树除了符合二叉搜索树的基本规则外,还添加了以下特性: 规则1:节点是红色或黑色的; 规则2:根节点是黑色的; 规则3:每个叶子节点都是黑色的空节点(NIL节点); 规则4:每个红色节点的两个子节点都是黑色的(从每个叶子到根的所有路径上不可能有两个连续的红色节点); 规则5:从任一节点到其每个叶子节点的所有路径都包含相同数目的黑色节点; 红黑树的相对平衡 前面5条规则的约束确保了以下红黑树的关键特性: 从 根到叶子节点 的 最长路径 ,不会超过 最短路径 的 两倍 ; 结果就是这棵树 基本 是平衡的; 虽然没有做到绝对的平衡,但是可以保证在最坏的情况下,该树依然是高效的; 为什么可以做到 最长路径不超过最短路径的两倍 呢? 性质4 决定了路径上不能有两个相连的红色节点; 所以,最长路径一定是红色节点和黑色节点交替而成的; 由于根节点和叶子节点都是黑色的,最短路径可能都是黑色节点,并且最长路径中一定是黑色节点多于红色节点; 性质5 决定了所有路径上都有相同数目的黑色节点; 这就表明了没有路径能多于其他任何路径两倍长。 二、红黑树的三种变换 插入一个新节点时,有可能树不再平衡,可以通过三种方式的变换使树保持平衡: 变色 ; 左旋转 ; 右旋转 ; 2.1.变色 为了重新符合红黑树的规则,需要把 红色 节点变为 黑色 ,或者把 黑色 节点变为 红色 ;