fork download
  1. //BST Binary search tree demo
  2. //Petr Buben 12,3.2025
  3.  
  4. #include <iostream>
  5. /*
  6. search(root)
  7. if root==nullptr
  8. return nullptr
  9. if number==root.data
  10. return root.data
  11. if number<root.data
  12. return search(root->left)
  13. if number>root.data
  14. return search(root->right)
  15.  
  16. insert
  17. if node==nullptr
  18. createnode(number)
  19. if number < node->data
  20. node->left= insert(node->left,number)
  21. else
  22. node->right= insert(node->right,number)
  23. return node
  24. */
  25.  
  26. struct node{
  27. int key;
  28. node* left,*right;
  29. };
  30.  
  31. // Create a node
  32. struct node *newNode(int item) {
  33. // struct node*t {(struct node*)malloc(sizeof(node))};
  34. struct node *temp = new node();
  35. temp->key = item;
  36. temp->left = temp->right = NULL;
  37. return temp;
  38. }
  39.  
  40. node *insert(node* node, int key){
  41. if(node==nullptr)
  42. return newNode(key);
  43. if(key<node->key)
  44. node->left =insert(node->left,key);
  45. else
  46. node->right=insert(node->right,key);
  47.  
  48. return node;
  49. }
  50.  
  51. node* search(node* n, int key){
  52. if(n==nullptr)
  53. return nullptr;
  54. if(n->key==key)
  55. return n;
  56. if(key<n->key){
  57. return search(n->left,key);}
  58. else if (key>n->key){
  59. return search(n->right,key);}
  60. }
  61.  
  62. void inorder(node* n){
  63. if(n!=nullptr){
  64. inorder(n->left);
  65. std::cout<<n->key<<" ";
  66. inorder(n->right);
  67. }
  68. }
  69.  
  70. int main() {
  71. struct node* root{ newNode(1)};
  72. insert(root,2);
  73.  
  74. std::cout<<search(root,1)->key<<std::endl;
  75. std::cout<<"in order:"<<std::endl;
  76. inorder(root);
  77.  
  78. return 0;
  79. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
1
in order:
1 2