data structures using tree deleteelement(treeval)breakcase printf("\ total no of nodes % "totalnodes(tree))breakcase printf("\ total no of external nodes % "totalexternalnodes(tree))breakcase printf("\ total no of internal nodes % "totalinternalnodes(tree))breakcase printf("\ the height of the tree % ",height(tree))breakcase tree mirrorimage(tree)breakcase tree deletetree(tree)break}while(option!= )getch()return void create_tree(struct node *treetree nullstruct node *insertelement(struct node *treeint valstruct node *ptr*nodeptr*parentptrptr (struct node*)malloc(sizeof(struct node))ptr->data valptr->left nullptr->right nullif(tree==nulltree=ptrtree->left=nulltree->right=nullelse parentptr=nullnodeptr=treewhile(nodeptr!=nullparentptr=nodeptrif(valdatanodeptr=nodeptr->leftelse nodeptr nodeptr->rightif(valdataparentptr->left ptrelse parentptr->right ptrreturn treevoid preordertraversal(struct node *tree