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);
|
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) {
|
void preorder(node *n) {
|
||||||
if (!n)
|
if (!n)
|
||||||
return;
|
return;
|
||||||
@@ -61,20 +82,13 @@ void inorder(node *n) {
|
|||||||
inorder(n->right);
|
inorder(n->right);
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_tree(node *n) {
|
|
||||||
if (!n)
|
|
||||||
return;
|
|
||||||
|
|
||||||
free_tree(n->left);
|
|
||||||
free_tree(n->right);
|
|
||||||
free(n);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
node *root = NULL;
|
node *root = NULL;
|
||||||
insert(&root, "A", "Amaang", 4004);
|
insert(&root, "A", "Amaang", 4004);
|
||||||
insert(&root, "Sahi", "Vivek", 2003);
|
insert(&root, "Sahi", "Vivek", 2003);
|
||||||
insert(&root, "How", "Alphonso", 9999);
|
insert(&root, "How", "Alphonso", 9999);
|
||||||
|
insert(&root, "real", "hmm", 4);
|
||||||
|
delete (&root, 9999);
|
||||||
|
|
||||||
printf("---------\n");
|
printf("---------\n");
|
||||||
printf("Preorder:\n");
|
printf("Preorder:\n");
|
||||||
|
Reference in New Issue
Block a user