Subscribe Us

Responsive Advertisement

Advertisement

problem 35(BST)


problem 35(BST)




#include<stdio.h>

struct node

{

    int data;

    struct node *left;

    struct node *right;


};

struct node *create(struct node *head,int val)

{

    struct node *temp,*newnode;

    temp=head;

    newnode=(struct node *)malloc(sizeof(struct node));

    newnode->data=val;

    newnode->left=NULL;

    newnode->right=NULL;

    if(temp==NULL)

    {

        return newnode;


    }

    else

    {

        while(1)

        {

            if(val<=temp->data)

            {

                if(temp->left==NULL)

                {

                    temp->left=newnode;

                    break;

                }

                temp=temp->left;

            }

            else

            {

                if(temp->right==NULL)

                {


                    temp->right=newnode;

                    break;

                }

                temp=temp->right;


            }


        }



    }

    return head;

};

void inorder(struct node *root)

{


       if(root!=NULL)

    {

        inorder(root->left);

        printf("%d ",root->data);

        inorder(root->right);


    }

}

int main()

{

    struct node *root1=NULL;

    for(int i=1;i<10;i++)

    {

        int n;

        printf("Enter data : ");

        scanf("%d",&n);

        root1=create(root1,n);

    }

    inorder(root1);



    return 0;

}


Post a Comment

0 Comments