Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void rbdelete(rbtree *tree, testimone *q){
- testimone *r, *s;
- if(strcmp(q->left->nome, tree->nil->nome)==0 || strcmp(q->right->nome, tree->nil->nome)==0)
- r = q;
- else
- r = treesucc(tree,q);
- s = r->left != tree->nil ? r->left : r->right;
- s->father = r->father;
- if(strcmp(r->father->nome ,tree->nil->nome)==0)
- tree->root = s;
- else
- if(strcmp(r->nome, r->father->left->nome)==0)
- r->father->left = s;
- else
- r->father->right = s;
- if(strcmp(r->nome, q->nome) != 0)
- strcpy(q->nome, r->nome);
- if(r->c == black)
- fixup(tree, s);
- free(r);
- }
Add Comment
Please, Sign In to add comment