From cf03a53e29a260fae279ce6109d303817d4c82b7 Mon Sep 17 00:00:00 2001 From: bhavy007 <44473716+bhavy007@users.noreply.github.com> Date: Sat, 1 Oct 2022 02:21:51 +0530 Subject: [PATCH] binary_Search_Tree --- algorithm/Binary Search Tree in C++.cpp | 75 +++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 algorithm/Binary Search Tree in C++.cpp diff --git a/algorithm/Binary Search Tree in C++.cpp b/algorithm/Binary Search Tree in C++.cpp new file mode 100644 index 00000000..378c1630 --- /dev/null +++ b/algorithm/Binary Search Tree in C++.cpp @@ -0,0 +1,75 @@ +/****************************************************************************** + + Online C++ Compiler. + Code, Compile, Run and Debug C++ program online. +Write your code in this editor and press "Run" button to compile and execute it. + +*******************************************************************************/ + +#include + +using namespace std; + +struct BstNode{ + int data; + struct BstNode* left; + struct BstNode* right; +}; + +struct BstNode* getNewNode(int data){ + struct BstNode* newNode = (struct BstNode*)malloc(sizeof(struct BstNode*)); + newNode->data = data; + newNode->left = NULL; + newNode->right = NULL; + return newNode; +} + +struct BstNode* Insert(struct 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(struct 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() +{ + int a,x; + struct BstNode* root = NULL; + root = Insert(root,15); + root = Insert(root,10); + root = Insert(root,10); + root = Insert(root,20); + root = Insert(root,25); + root = Insert(root,8); + printf("\nEnter number to be searched: "); + scanf("%d",&x); + + if(Search(root,x) == true) cout<<"Found\n"; + else cout<<"Not Found\n"; + + + + return 0; +}