#include <iostream>
using namespace std;
struct bstnode{
int data;
bstnode* left;
bstnode* right;
};
bstnode* getnewnode(int data){
bstnode* newnode = new bstnode();
newnode -> data=data;
newnode -> left = newnode->right = NULL;
return newnode;
}
bstnode* insert(bstnode* root,int data){
if(root==NULL){
root = getnewnode(data);
}
else if (data <= root->data ){
root->left= insert (root->left,data);
}
else{
root->right=insert(root->right,data);
}
return root;
}
bool search (bstnode* root,int d){
if(root==NULL)
return false;
if(root->data == d)
{
return true;
}
else if(d <= root->data)
return search(root->left,d);
else
return search(root->right,d);
}
void inorder(bstnode *r)
{
if(r!=NULL)
{
inorder(r->left);
cout<<r->data<<" ";
inorder(r->right);
}
}
int main()
{
bstnode* root =NULL;
root = insert (root,15);
root = insert(root,10);
root = insert(root,20);
root = insert(root,25);
root = insert(root,8);
root = insert(root,12);
int number;
//cout<<"enter number be searched\n";
//inorder(root);
cin>>number;
if(search(root,number)==true)cout<<"Found\n";
else cout<< "Not Found\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGJzdG5vZGV7CgppbnQgZGF0YTsKYnN0bm9kZSogbGVmdDsKYnN0bm9kZSogcmlnaHQ7Cn07Cgpic3Rub2RlKiBnZXRuZXdub2RlKGludCBkYXRhKXsKCmJzdG5vZGUqIG5ld25vZGUgPSBuZXcgYnN0bm9kZSgpOwpuZXdub2RlIC0+IGRhdGE9ZGF0YTsKbmV3bm9kZSAtPiBsZWZ0ID0gbmV3bm9kZS0+cmlnaHQgPSBOVUxMOwpyZXR1cm4gbmV3bm9kZTsKfQoKYnN0bm9kZSogaW5zZXJ0KGJzdG5vZGUqIHJvb3QsaW50IGRhdGEpewoJCmlmKHJvb3Q9PU5VTEwpewpyb290ID0gZ2V0bmV3bm9kZShkYXRhKTsKfQplbHNlIGlmIChkYXRhIDw9IHJvb3QtPmRhdGEgKXsKICAgIHJvb3QtPmxlZnQ9IGluc2VydCAocm9vdC0+bGVmdCxkYXRhKTsKfSAKZWxzZXsgCglyb290LT5yaWdodD1pbnNlcnQocm9vdC0+cmlnaHQsZGF0YSk7Cn0KcmV0dXJuIHJvb3Q7IAp9Cgpib29sIHNlYXJjaCAoYnN0bm9kZSogcm9vdCxpbnQgZCl7CgppZihyb290PT1OVUxMKQpyZXR1cm4gZmFsc2U7CgppZihyb290LT5kYXRhID09IGQpCnsKCXJldHVybiB0cnVlOwp9CiAgICBlbHNlIGlmKGQgPD0gcm9vdC0+ZGF0YSkgCiAgICByZXR1cm4gc2VhcmNoKHJvb3QtPmxlZnQsZCk7CiAgICBlbHNlIAogICAgcmV0dXJuIHNlYXJjaChyb290LT5yaWdodCxkKTsKICAgIAp9Cgp2b2lkIGlub3JkZXIoYnN0bm9kZSAqcikKewoJaWYociE9TlVMTCkKCXsKCQlpbm9yZGVyKHItPmxlZnQpOwoJICAgIGNvdXQ8PHItPmRhdGE8PCIgIjsKCQlpbm9yZGVyKHItPnJpZ2h0KTsKCX0KfQoKaW50IG1haW4oKQp7Cgpic3Rub2RlKiByb290ID1OVUxMOwpyb290ID0gaW5zZXJ0IChyb290LDE1KTsKcm9vdCA9IGluc2VydChyb290LDEwKTsKcm9vdCA9IGluc2VydChyb290LDIwKTsKcm9vdCA9IGluc2VydChyb290LDI1KTsKcm9vdCA9IGluc2VydChyb290LDgpOwpyb290ID0gaW5zZXJ0KHJvb3QsMTIpOwppbnQgbnVtYmVyOwovL2NvdXQ8PCJlbnRlciBudW1iZXIgYmUgc2VhcmNoZWRcbiI7Ci8vaW5vcmRlcihyb290KTsKY2luPj5udW1iZXI7CmlmKHNlYXJjaChyb290LG51bWJlcik9PXRydWUpY291dDw8IkZvdW5kXG4iOwplbHNlIGNvdXQ8PCAiTm90IEZvdW5kXG4iOwpyZXR1cm4gMDsKfQ==