Link to home
Start Free TrialLog in
Avatar of Jad Dava
Jad Dava

asked on

Crashing when deleting value with no child in Binary Tree

In my binary tree, I can delete values that have other values extending from it. If they don't, or if it is the only value, the program crashes. Not sure how to fix it. This is the deletion part of the code:

void delete_tree (binarytree *t, int x)
{
   binarytree temp;

   if (!is_empty(*t))
   {
       if (x == (*t)-> data)
       {
           if (((*t) -> left == NULL)&&((*t) -> right == NULL))
           {
               temp = (*t);
               (*t) = NULL;
               free (temp);
           }

           if (((*t) -> left != NULL)&&((*t)-> right == NULL))
           {
                temp = (*t);
                (*t) = (*t) -> left;
                free (temp);
           }
           if (((*t)-> left == NULL)&&((*t)-> right != NULL))
           {
               temp = (*t);
               (*t) = (*t) -> right;
               free (temp);
           }
           if (((*t) -> left != NULL)&&((*t) -> right != NULL))
           {
               temp = (*t)-> right;
                   while (temp -> left != NULL)
                       {
                           temp = (*t) -> left;
                       }

               temp -> left = (*t) ->left;
               temp = (*t);
               (*t) = (*t) -> right;
               free (temp);

           }

       }
       else {
            if ( x <= (*t) -> data)
                delete_tree(&(*t) -> left, x);

            else
                delete_tree(&(*t) -> right, x);
        }


   }
   else printf("No data found.\n");
}

Open in new window


I'm a noobie at programming so any help would be appreciated. :)
ASKER CERTIFIED SOLUTION
Avatar of Julian Hansen
Julian Hansen
Flag of South Africa image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Jad Dava
Jad Dava

ASKER

Thank you! I did try adding elses before the ifs but I may have added them in the wrong places.
You are welcome.