mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-03 23:56:54 +08:00
添加注释
This commit is contained in:
parent
3a05a02979
commit
0901b08417
@ -1299,16 +1299,21 @@ bool tree_rb_delete(struct _tree* self, void* obj)
|
|||||||
}
|
}
|
||||||
else if(node->left != NULL && node->right == NULL)
|
else if(node->left != NULL && node->right == NULL)
|
||||||
{
|
{
|
||||||
|
// node->left must be red
|
||||||
tmp = node->left;
|
tmp = node->left;
|
||||||
memmove(node->obj,tmp->obj, self->_obj_size);
|
memmove(node->obj,tmp->obj, self->_obj_size);
|
||||||
}
|
}
|
||||||
else if(node->left == NULL && node->right != NULL)
|
else if(node->left == NULL && node->right != NULL)
|
||||||
{
|
{
|
||||||
|
// node->right must be red
|
||||||
tmp = node->right;
|
tmp = node->right;
|
||||||
memmove(node->obj,tmp->obj, self->_obj_size);
|
memmove(node->obj,tmp->obj, self->_obj_size);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// 1. find the min node in right subtree
|
||||||
|
// 2. replace the node with min node
|
||||||
|
// 3. delete the min node
|
||||||
tmp = self->find_min(self, node->right);
|
tmp = self->find_min(self, node->right);
|
||||||
memmove(node->obj, tmp->obj, self->_obj_size);
|
memmove(node->obj, tmp->obj, self->_obj_size);
|
||||||
if(tmp->right != NULL)
|
if(tmp->right != NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user