//To implement binary search tree using linked list.
#include<stdio.h>
int count = 0;
typedef struct Btree{
int data;
struct Btree *left;
struct Btree *right;
};
struct Btree* insert(struct Btree *bt,int n){
if(bt==NULL){
bt= (struct Btree *) malloc(sizeof(struct Btree));
bt->data=n;
bt->left=NULL;
bt->right=NULL;
}
else if(n<=bt->data)
bt->left = insert(bt->left,n);
else
bt->right = insert(bt->right,n);
return bt;
}
int searchElement(struct Btree *bt,int item){
if(bt!=NULL){
count++;
if(item<bt->data)
searchElement(bt->left,item);
else if(item>bt->data)
searchElement(bt->right,item);
else if(item == bt->data)
return count;
}
else{
return 0;
}
}
int main(){
struct Btree *bt;
int loc;
bt=NULL;
int item;
while(1){
count = 0;
printf("which operation you want to perform....\n");
printf("1. Insert an element.\n");
printf("2. Search an element.\n");
int op;
int sEle;
scanf("%d",&op);
switch(op){
case 1:
printf("Enter a number.\n");
scanf("%d",&item);
bt = insert(bt,item);
break;
case 2:
printf("Enter an number for search.");
scanf("%d",&sEle);
loc = searchElement(bt,sEle);
if(loc==0)
printf("Element not found.");
else
printf("element found at %d ",loc);
printf("\n");
break;
default:
printf("Please choose correct option...\n\n");
}
}
}
No comments:
Post a Comment