32
9.c
32
9.c
@@ -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");
|
||||
|
Reference in New Issue
Block a user