#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct BSTnode {
int data;
struct BSTnode *left;
struct BSTnode *right;
} BSTnode;
BSTnode *getNewNode(int data){
BSTnode
*newNode
= (BSTnode
*)malloc(sizeof(BSTnode
)); newNode->data=data;
newNode->left=newNode->right=NULL;
return newNode;
}
BSTnode* InsertNew(BSTnode *root,int data){
if(root == NULL){
root = getNewNode(data);
}
else if(data <= root->data){
root->left = InsertNew(root->left,data);
} else{
root->right = InsertNew(root->right,data);
}
return root;
}
bool search(BSTnode *root, int data){
if(root== NULL) return false;
else if(root->data == data) return true;
else if (data < root->data) return search(root->left,data);
else return search(root->right,data);
}
int main()
{
//node to store root
BSTnode *root = NULL;
root = InsertNew(root,34);
root = InsertNew(root,4);
root = InsertNew(root,3);
root = InsertNew(root,1);
int num;
printf("enter a number : \n");
if(search(root,num)==true){
}else{
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGJvb2wuaD4KdHlwZWRlZiBzdHJ1Y3QgQlNUbm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIHN0cnVjdCBCU1Rub2RlICpsZWZ0OwogICAgc3RydWN0IEJTVG5vZGUgKnJpZ2h0OwogICAgfSBCU1Rub2RlOwoKQlNUbm9kZSAqZ2V0TmV3Tm9kZShpbnQgZGF0YSl7CiAgICBCU1Rub2RlICpuZXdOb2RlID0gKEJTVG5vZGUqKW1hbGxvYyhzaXplb2YoQlNUbm9kZSkpOwogICAgbmV3Tm9kZS0+ZGF0YT1kYXRhOwogICAgbmV3Tm9kZS0+bGVmdD1uZXdOb2RlLT5yaWdodD1OVUxMOwogICAgcmV0dXJuIG5ld05vZGU7CiAgICB9CkJTVG5vZGUqIEluc2VydE5ldyhCU1Rub2RlICpyb290LGludCBkYXRhKXsKICAgIGlmKHJvb3QgPT0gTlVMTCl7CiAgICAgICAgcm9vdCA9IGdldE5ld05vZGUoZGF0YSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgZWxzZSBpZihkYXRhIDw9IHJvb3QtPmRhdGEpewogICAgICAgICAgICByb290LT5sZWZ0ID0gSW5zZXJ0TmV3KHJvb3QtPmxlZnQsZGF0YSk7CiAgICAgICAgICAgIH0gZWxzZXsKICAgICAgICAgICAgICAgIHJvb3QtPnJpZ2h0ID0gSW5zZXJ0TmV3KHJvb3QtPnJpZ2h0LGRhdGEpOwogICAgICAgICAgICAgICAgfQogICAgICAgIHJldHVybiByb290OwogICAgICAgIH0KCmJvb2wgc2VhcmNoKEJTVG5vZGUgKnJvb3QsIGludCBkYXRhKXsKICAgIGlmKHJvb3Q9PSBOVUxMKSByZXR1cm4gZmFsc2U7CiAgICBlbHNlIGlmKHJvb3QtPmRhdGEgPT0gZGF0YSkgcmV0dXJuIHRydWU7CiAgICBlbHNlIGlmIChkYXRhIDwgcm9vdC0+ZGF0YSkgcmV0dXJuIHNlYXJjaChyb290LT5sZWZ0LGRhdGEpOwogICAgZWxzZSByZXR1cm4gc2VhcmNoKHJvb3QtPnJpZ2h0LGRhdGEpOwoKICAgIH0KaW50IG1haW4oKQp7Ci8vbm9kZSB0byBzdG9yZSByb290CgpCU1Rub2RlICpyb290ID0gTlVMTDsKCnJvb3QgPSBJbnNlcnROZXcocm9vdCwzNCk7CnJvb3QgPSBJbnNlcnROZXcocm9vdCw0KTsKcm9vdCA9IEluc2VydE5ldyhyb290LDMpOwpyb290ID0gSW5zZXJ0TmV3KHJvb3QsMSk7CgppbnQgbnVtOwpwcmludGYoImVudGVyIGEgbnVtYmVyIDogXG4iKTsKc2NhbmYoIiVkIiwgJm51bSk7CgppZihzZWFyY2gocm9vdCxudW0pPT10cnVlKXsKICAgIHByaW50ZigiZm91bmQiKTsKICAgIH1lbHNlewogICAgcHJpbnRmKCJub3QgZm91bmQiKTsKICAgIH0KICAgICByZXR1cm4gMDsKIH0=