rbtree删除流程
2017-03-18 23:44:31 0 举报
RBTree删除流程主要包括以下几个步骤:首先,找到要删除的节点。然后,根据该节点的子节点数量进行不同的处理。如果该节点有两个子节点,那么找到它的后继节点(即右子树中值最大的节点)来替代它的位置,并将后继节点的值复制到当前节点,然后删除后继节点。如果该节点只有一个子节点,那么直接用它的子节点替代它的位置。如果该节点没有子节点,那么找到它的前驱节点(即左子树中值最小的节点)来替代它的位置,并将前驱节点的值复制到当前节点,然后删除前驱节点。在删除过程中,需要通过旋转操作来保持红黑树的性质。最后,释放被删除节点的内存空间。
作者其他创作
大纲/内容
否
1-设兄弟为黑2-设父为红3-父右旋4-重新获取兄弟
设X为黑
X的兄弟是否为红
下一次循环判断
是
1-设兄弟颜色为父的颜色2-设父为黑3-设兄弟右节点为黑4-父左旋5-设X为ROOT
1-设兄弟为红2-x重新赋值为父
兄弟的左右节点是否全为黑
兄弟右节点是否为黑
判断X是左节点还是右节点
左节点
右节点
1-设兄弟颜色为父的颜色2-设父为黑3-设兄弟左节点为黑4-父右旋5-设X为ROOT
兄弟左节点是否为黑
1-设兄弟右节点为黑2-设兄弟为红3-兄弟左旋4-重新获取兄弟
1-设兄弟左节点为黑2-设兄弟为红3-兄弟右旋4-重新获取兄弟
跳出循环
1-设兄弟为黑2-设父为红3-父左旋4-重新获取兄弟
0 条评论
回复 删除
下一页