Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- node *minValueNode(node* root){
- node *atual = root;
- while(atual->left != NULL)
- atual = atual->left;
- return atual;
- }
- node *BST_delete(node* root, int64 l, int64 r){
- node *temp = root;
- if(root == NULL) return root;
- if(root->key > r){
- contador++;
- root->left = BST_delete(root->left, l, r);
- }
- else if(root->key < l){
- contador++;
- root->right = BST_delete(root->right, l, r);
- }
- else{
- if (root->left == NULL){
- node *temp = root->right;
- free(root);
- contador++;
- return temp;
- }
- else if (root->right == NULL){
- node *temp = root->left;
- free(root);
- contador++;
- return temp;
- }
- node* temp = minValueNode(root->right);
- root->key = temp->key;
- root->right = BST_delete(root->right, temp->key, r);
- //contador++;
- }
- return root;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement