exp 9: add delete

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
2022-12-28 05:26:10 +05:30
parent 1b9c98247f
commit 869d3051f2
2 changed files with 23 additions and 9 deletions

32
9.c
View File

@@ -34,6 +34,27 @@ void insert(node **root, char *type, char *company, uint yom) {
insert(&((*root)->right), type, company, yom);
}
void free_tree(node *n) {
if (!n)
return;
free_tree(n->left);
free_tree(n->right);
free(n);
}
void delete (node **root, uint yom) {
if ((*root)->yom == yom) {
free_tree(*root);
*root = NULL;
return;
}
if (yom < (*root)->yom)
return delete (&((*root)->left), yom);
return delete (&((*root)->right), yom);
}
void preorder(node *n) {
if (!n)
return;
@@ -61,20 +82,13 @@ void inorder(node *n) {
inorder(n->right);
}
void free_tree(node *n) {
if (!n)
return;
free_tree(n->left);
free_tree(n->right);
free(n);
}
int main() {
node *root = NULL;
insert(&root, "A", "Amaang", 4004);
insert(&root, "Sahi", "Vivek", 2003);
insert(&root, "How", "Alphonso", 9999);
insert(&root, "real", "hmm", 4);
delete (&root, 9999);
printf("---------\n");
printf("Preorder:\n");