Added code for delete operation on BST (#19516)
This commit is contained in:
committed by
Quincy Larson
parent
606eef21d8
commit
829c80cdb0
@ -154,6 +154,42 @@ void insert(int data) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
#### Delete Operation
|
||||||
|
void deleteNode(struct node* root, int data){
|
||||||
|
|
||||||
|
if (root == NULL) root=tempnode;
|
||||||
|
|
||||||
|
if (data < root->key)
|
||||||
|
root->left = deleteNode(root->left, key);
|
||||||
|
|
||||||
|
|
||||||
|
else if (key > root->key)
|
||||||
|
root->right = deleteNode(root->right, key);
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (root->left == NULL)
|
||||||
|
{
|
||||||
|
struct node *temp = root->right;
|
||||||
|
free(root);
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
else if (root->right == NULL)
|
||||||
|
{
|
||||||
|
struct node *temp = root->left;
|
||||||
|
free(root);
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct node* temp = minValueNode(root->right);
|
||||||
|
|
||||||
|
root->key = temp->key;
|
||||||
|
|
||||||
|
root->right = deleteNode(root->right, temp->key);
|
||||||
|
}
|
||||||
|
return root;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Binary search trees (BSTs) also give us quick access to predecessors and successors.
|
Binary search trees (BSTs) also give us quick access to predecessors and successors.
|
||||||
Predecessors can be described as the node that would come right before the node you are currently at.
|
Predecessors can be described as the node that would come right before the node you are currently at.
|
||||||
@ -244,4 +280,4 @@ Complete Binary Tree: A Binary Tree is complete Binary Tree if all levels are co
|
|||||||
/ \ / \
|
/ \ / \
|
||||||
40 50 100 40
|
40 50 100 40
|
||||||
/ \ /
|
/ \ /
|
||||||
8 7 9
|
8 7 9
|
||||||
|
Reference in New Issue
Block a user