Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 39796

Can Any one help me to resolve the error in this binary search tree program

$
0
0
#include <stdio.h>
#include <conio.h>

 struct nodetype
 {
     int info ;
     struct nodetype *left , *right ;
 };
typedef struct nodetype *nodeptr;
nodeptr  maketree (int);
nodeptr getnode();
void setleft( nodeptr , int);
void setright(nodeptr , int);
void pretrav (nodeptr);
int main()

{
    nodeptr ptree ,p , q ;
    int number,c ;
    char ch;
    do{
        printf (" \n\t---Enter the Number ->");
        scanf("%d",&number);
        ptree = maketree(number);
        printf("\n\t---waiting for while");


        //printf ("\n\t---Entered into While loop 1");
            p=ptree;
            q=NULL;
            while (number != p->info && q !=NULL)
              {
               printf ("---\n\tEntered into While loop 2");
               p=q;
               if (number < p->info)
               q=p->left;
               else
               q=p->right;
               } /*end of w hile */
               if ( number == p->info)
                     printf ("\n\t---%d is a Duplicate number \n", number);
                else if (number < p->info)
                {

                  printf("setting left!");
                  setleft(p , number);}
                else
                  {
                      printf("setting right!");
                      setright(p , number);
                  }
               printf("Want to continue YEs Or No");
               scanf ("%c", &ch);
           } while (ch=='y');
           /*end of while */
    printf("\n\n Enter your choice \n\n 1-> Enter 1 for Pretraversal \n\n 2-> Enter 2 for Intraversal \n\n 3-> Enter 3 for post ordertraversal");
    scanf("%d",&c);
    switch(c)
    {
        case (1) :
                pretrav ( ptree);
    }


    return (0);
}/*end of main */

 nodeptr maketree (int x)

{
    printf (" \n\t---Maketree() Function is called");
    nodeptr  p ;
    p = getnode ();
    p->info = x;
    p->right = NULL;
    p->left = NULL;
    return (p);
}

 nodeptr getnode()
 {
     printf("\n\t---Getnode() function has been called");
     nodeptr  p ;
     p=(struct nodeptr *)malloc(sizeof(nodeptr));
     return p ;
 }

 void setleft(nodeptr p , int x)
  {
      nodeptr f;
      if (p == NULL)
        printf ("\n\t---void insertion\n");
      else if (p->left != NULL)
        printf("\n\t---invalid insertion\n");
      else
        f = maketree(x);
        p->left = f;
  }

  void setright( nodeptr p , int x)
  {
      if (p==NULL)
        printf ("\n\t---void insertion\n");
      else if (p->right != NULL)
        printf("\n\t---invalid insertion\n");
      else
        p->right = maketree(x);
  }

               void pretrav(nodeptr ptree)
                 {
                    if ( ptree!=NULL )
                    {
                        printf("%d\n", ptree->info);
                        preetrav(ptree->left);
                        preetrav(ptree->right);
                    }
                }

Can Any one help me to resolve the error ..


Viewing all articles
Browse latest Browse all 39796

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>