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;
}
0 Comments