特点:
1) 每个节点的颜色或是红,或是黑
2)根节点是黑色
3)叶节点是黑色
4)如果一个节点是红色,则叶子为黑
5)对每个节点,从该节点
红黑树插入流程:
第一步:
和BST的插入过程相似,将待插入节点z插入到一个红黑树的叶子节点,并着红色
因为第一步之后可能会违反红黑树的某些性质,所以要进行下一步
第二步:
第二步只有当插入节点的父节点为红色时才会执行,因为这个时候才会违反性质4)颜色调整分为六种情况,根据插入节点的父节点是祖父节点的左子树还是右子树分为2种,其中每种情况又有以下三种情况:
情况a:插入节点的父节点是红色节点并且插入节点的叔叔节点(祖父节点的另外一个子节点)也是红色。
情况b:插入节点是父节点的右子树并且叔叔节点是黑节点
情况c:插入节点是父节点的左子树并且叔叔节点是黑节点
针对情况a:
针对情况b:
将z的父节点进行一次左旋转转换为情况c
针对情况c:
将祖父节点进行一次右旋转转换成最终形态
步骤三:
将根节点着为黑色
习题答案:
13.1-2
插入位置是35节点的右子树
如果被标记为红色,则不是一颗红黑树,因为红色节点的子节点必须为黑色才满足红黑树的性质。
如果被标为黑色,违反性质5
13.1-3
是
13.1-4
两个节点是黑色=》2
一个节点是黑色=》3
两个节点是红色=》4
13.1-6
红黑交叉分布:2^(2k+1)-1
全黑:2^k-1
13.1-7
全黑时最小为0:n
红黑交错2:1
13.3-1
如果着为黑色,则会永久破坏性质5。
13.3-2
13.3-4 因为当新插入节点不是根节点时,该节点一定为红色,不会更改
13.3-5
TODO