Subscribe Us

Responsive Advertisement

Advertisement

Searching in a Binary Search Trees (Search Operation) using C

 

Searching in a Binary Search Trees (Search Operation) using C





#include<stdio.h>

struct node

{

       int data;

       struct node *left;

       struct node *right;

};

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

{

         struct node *temp,*newhead;

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

         newhead->data=val;

         newhead->left=NULL;

         newhead->right=NULL;

        temp=head;

         if(head==NULL)

         {

             return newhead;


         }

         else

         {

             while(1)

             {

                 if(val<=temp->data)

                 {

                     if(temp->left==NULL)

                     {

                         temp->left=newhead;

                         break;

                     }

                     else temp=temp->left;

                 }

                 else

                 {


                     if(temp->right==NULL)

                     {

                         temp->right=newhead;

                         break;

                     }

                     else temp=temp->right;

                 }

             }


         }

         return head;

};

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

{

    if(head==NULL)return NULL;

    if(head->data==val)return head;

    else if(val<head->data) return search(head->left,val);

    else return search(head->right,val);

};

int main()

{


    struct node *root=NULL,*find;

    int n;

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

    {

        scanf("%d",&n);

        root=create(root,n);

    }

    n=5;

   while(n--)

   {

       printf("Enter item  ");

        scanf("%d",&n);

    find=search(root,n);

    if(find==NULL)printf("Not found\n");

    else printf("found\n");

   }


    return 0;

}


Post a Comment

0 Comments