11 while(is_black(node) && node != tree->
root)
15 sibling = parent->
child[left];
22 sibling = parent->
child[left];
29 parent = get_parent(node);
33 if(is_black(sibling->
child[left]))
35 set_black(sibling->
child[!left]);
38 sibling = parent->
child[left];
46 set_black(sibling->
child[left]);
77 parent = get_parent(old);
89 parent = get_parent(node);
90 color = get_color(node);
97 set_parent(child, parent);
115 parent = get_parent(node);
116 color = get_color(node);
119 set_parent(child, parent);
132 recolor(tree, parent, child);
134 if(destructor != NULL)
135 (*destructor)(original);
rbtree_node_t * rbtree_node_next(const rbtree_node_t *node)
void rbtree_rotate(rbtree_t *tree, rbtree_node_t *node, int left)
enum rbtree_color rbtree_color_t
rbtree_node_t * rbtree_remove(rbtree_t *tree, rbtree_node_t *node, rbtree_node_destructor_t destructor)
void(* rbtree_node_destructor_t)(rbtree_node_t *Node)