标签:红黑树 红黑树删除 红黑树旋转 红黑树重新着色 红黑树删除时旋转
50 60 60
/ \ delete(50) / \ delete(60‘) / 40 70 -----------------> 40 70 ------------------> 40 70
/ \ 后继节点赋值 / \ 删除后继节点 60 80 给被删节点 60‘ 80 80
30 30
/ \ delete(10) / 20 40 -------------> 20 40
/
10
30 30
/ \ delete(20) / 10 40 -------------> 10 40
\
20
30 30
/ \ delete(20) / 20 40 -------------> 10 40
/
10
30 30
/ \ delete(20) / 20 40 -------------> 10 40
\
10
40 40 40 / \ delete(20) / \ delete(30‘) / 20 50 ----------------------> 30 50 ---------------------> 30 50 / \ 执行步骤2.1,将d的 / \ 此时转换为了删除叶子30‘. / 10 30 后继节点的值赋给d. 10 30‘ 10
40 40 40 / \ delete(20) / \ delete(30‘) / 20 50 ----------------------> 30 50 ---------------------> 30 50 / \ 执行步骤2.1,将d的 / \ 此时转换为了删除叶子30‘. / 10 30 后继节点的值赋给d. 10 30‘ 10
30 40
/ \ delete(20) / 20 40 -------------> 30 50
\
50
a. Left Left Case (s是左孩子,且r是s的左孩子或者s的两个孩子都是红色)。这种情形与下面的Right Right Case正好相反。
b. Left Right Case (s是左孩子,且r是s的右孩子)。这种情形与下面的Right Left Case正好相反。
c. Right Right Case (s是右孩子,且r是s的右孩子或者s的两个孩子都是红色)。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:红黑树 红黑树删除 红黑树旋转 红黑树重新着色 红黑树删除时旋转
原文地址:http://blog.csdn.net/shltsh/article/details/46835757