if(tree==nullreturn else leftheight height(tree->left)rightheight height(tree->right)if(leftheight rightheightreturn (leftheight )else return (rightheight )struct node *mirrorimage(struct node *treestruct node *ptrif(tree!=nullmirrorimage(tree->left)mirrorimage(tree->right)ptr=tree->leftptr->left ptr->righttree->right ptrstruct node *deletetree(struct node *treeif(tree!=nulldeletetree(tree->left)deletetree(tree->right)free(tree)output *******main menu****** insert element preorder traversal inorder traversal postorder traversal find the smallest element find the largest element delete an element count the total number of nodes count the total number of external nodes count the total number of internal nodes determine the height of the tree find the mirror image of the tree delete the tree exit enter your option enter the value of the new node enter the value of the new node enter the value of the new node enter your option enter your option threaded binary trees threaded binary tree is the same as that of binary tree but with difference in storing the null pointers consider the linked representation of binary tree as given in fig