From f5c8808b55b81ebd277e7d74bb0687a7a84926c3 Mon Sep 17 00:00:00 2001 From: rohitps3282 <44469315+rohitps3282@users.noreply.github.com> Date: Sat, 3 Oct 2020 14:10:20 +0530 Subject: [PATCH] Search a node in BST --- include/Search a node in BST | 64 ++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 include/Search a node in BST diff --git a/include/Search a node in BST b/include/Search a node in BST new file mode 100644 index 00000000..ed7bb270 --- /dev/null +++ b/include/Search a node in BST @@ -0,0 +1,64 @@ +#include +using namespace std; +//Definition of Node for Binary search tree +struct BstNode { + int data; + BstNode* left; + BstNode* right; +}; + +// Function to create a new Node in heap +BstNode* GetNewNode(int data) { + BstNode* newNode = new BstNode(); + newNode->data = data; + newNode->left = newNode->right = NULL; + return newNode; +} + +// To insert data in BST, returns address of root node +BstNode* Insert(BstNode* root,int data) { + if(root == NULL) { // empty tree + root = GetNewNode(data); + } + // if data to be inserted is lesser, insert in left subtree. + else if(data <= root->data) { + root->left = Insert(root->left,data); + } + // else, insert in right subtree. + else { + root->right = Insert(root->right,data); + } + return root; +} +//To search an element in BST, returns true if element is found +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() { + BstNode* root = NULL; // Creating an empty tree + /*Code to test the logic*/ + root = Insert(root,15); + root = Insert(root,10); + root = Insert(root,20); + root = Insert(root,25); + root = Insert(root,8); + root = Insert(root,12); + // Ask user to enter a number. + int number; + cout<<"Enter number be searched\n"; + cin>>number; + //If number is found, print "FOUND" + if(Search(root,number) == true) cout<<"Found\n"; + else cout<<"Not Found\n"; +}