Search a value in a Tree - C program
the beauty of this code is that searching the tree (function:searchtree ) is going to be the one function.But we will make the computer to do the same task repetitively just passing the next node.
#include
#include
struct node {
int a;
struct node* left;
struct node* right;
};
struct node* insert_node(int a){
struct node* newnode;
newnode = (struct node*) malloc (sizeof(struct node));
newnode->a = a;
newnode->left = NULL;
newnode->right = NULL;
return newnode;
}
int searchtree(struct node* root,int num){
if(root == NULL)
return 0;
if(root->a == num ||searchtree(root->left,num))
return 1;
if(root->a == num || searchtree(root->right,num)){
return 1;
}
}
int main(){
int num;
struct node* root;
root = insert_node(1);
root->left = insert_node(2);
root->right = insert_node(3);
root->right->right = insert_node(4);
root->right->left = insert_node(5);
root->left->left = insert_node(6);
root->left->right = insert_node(7);
root->left->right->left = insert_node(8);
printf("type a number:");
scanf("%d",&num);
if(searchtree(root,num)){
printf("number found in tree");
}
else{
printf("number not found in tree");
};
return(0);
}