红黑树插入修正分析
80(B) 80(B) 80(B)
————>插入20后 ——————>平衡
40(R) 120(R) 40(R) 120(R) 40(B) 120(B)
20(R) 20(R)
80(B) 80(B) 80(B)
40(B) 120(B) 40(B) 120(B) 40(R) 120(B)
20(R) 60(R)
插入60后 20(R) 60(R) 插入50后 50(R) 平衡 20(B) 60(B)
50(R)
80(B) 80(B)
40(R) 120(B) 40(R) 120(B)
20(B) 60(B) 20(B) 60(B)
插入70后 50(R) 70(R) 插入35后 35(R) 50(R) 70(R)
80(B) 80(B)
40(R) 120(B) 40(R) 120(B)
插入15后 20(B) 60(B) 20(B) 60(B)
15(R) 35(R) 50(R) 70(R) 15(R) 35(R) 50(R) 70(R)
11(R)
80(B) 40(B)
40(R) 120(B) 20(R) 80(R)
平衡 20(R) 60(B) 再平衡 15(B) 35(B) 60(B) 120(B)
15(B) 35(B) 50(R) 70(R) 11(R) 50(R) 70(R)
11(R)
红黑树的插入修正分三种情况考虑
实际上case 1是转化成case 2或case 3进行处理
然后case 2转化成case 3进行处理
case 3处理后红黑树一定是平衡的,因为红黑树在插入之前是平衡的,
所以做平衡的时候只需要将局部不平衡处理为平衡的,并不影响其他已平衡的节点,
那么红黑树就恢复平衡了