Advertisement
TOFSIR_IU

BST insertion and searching

Apr 11th, 2025
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define endl "\n";
  4. typedef struct tree
  5. {
  6.     int number;
  7.     struct tree *leftChild;
  8.     struct tree *rightChild;
  9. }node;
  10. node *root = NULL;
  11. void insertNode(int value)
  12. {
  13.     node *tempNode;
  14.     node *currentNode=NULL;
  15.     node *parentNode=NULL;
  16.     tempNode = (node *) malloc (sizeof(node));
  17.     tempNode->number=value;
  18.     if(root==NULL)
  19.     {
  20.         root=tempNode;
  21.     }
  22.     else
  23.     {
  24.         currentNode=root;
  25.         while(1)
  26.         {
  27.             parentNode=currentNode;
  28.             if(parentNode->number>value)
  29.             {
  30.                 currentNode=parentNode->leftChild;
  31.                 if(currentNode==NULL)
  32.                 {
  33.                     parentNode->leftChild=tempNode;
  34.                     return;
  35.                 }
  36.             }
  37.             else
  38.             {
  39.                 currentNode=parentNode->rightChild;
  40.                 if(currentNode==NULL)
  41.                 {
  42.                     parentNode->rightChild=tempNode;
  43.                     return;
  44.                 }
  45.             }
  46.         }
  47.     }
  48. }
  49. bool BST(int item)
  50. {
  51.     node *currentNode=root;
  52.     int flag=0;
  53.     while(1)
  54.     {
  55.         if(currentNode->number==item)
  56.         {
  57.             return true;
  58.         }
  59.         else if(currentNode->number<item)
  60.         currentNode=currentNode->rightChild;
  61.         else
  62.         currentNode=currentNode->leftChild;
  63.         if(currentNode==NULL)
  64.         return false;
  65.     }
  66. }
  67. int main()
  68. {
  69.     ios_base::sync_with_stdio(false);
  70.     cin.tie(NULL);
  71.     cout.tie(NULL);
  72.     int n;
  73.     cin>>n;
  74.     while(n--)
  75.     {
  76.         int a;
  77.         cin>>a;
  78.         insertNode(a);
  79.     }
  80.     cout<<"Insertion done"<<endl;
  81.     int item;
  82.     cin>>item;
  83.     if(BST(item))
  84.     {
  85.         cout<<item<<" is found"<<endl;
  86.     }
  87.     else
  88.     {
  89.         cout<<item<<" is not found"<<endl;
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement