Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Node {
  6.  
  7. public:
  8.  
  9.     int data;
  10.  
  11.     Node* leftNode;
  12.  
  13.     Node* rightNode;
  14.  
  15.     Node(int _data) {
  16.  
  17.         data=_data;//Data
  18.  
  19.         leftNode=NULL;
  20.  
  21.         rightNode=NULL;
  22.  
  23.     }
  24.  
  25. };
  26.  
  27. class BinarySearchTree {
  28.  
  29. public:
  30.  
  31.     Node* root;
  32.  
  33.     BinarySearchTree() {
  34.  
  35.         root=NULL;
  36.  
  37.     }
  38.  
  39.     void insert(Node * _node) {
  40.  
  41.         if (root==NULL) {
  42.  
  43.             root= _node;
  44.  
  45.         } else {
  46.  
  47.             Node* tmp=root;
  48.  
  49.             while (tmp!=NULL) {
  50.  
  51.                 if ((* _node).data>=(*tmp).data) {
  52.  
  53.                     if ((* tmp).rightNode==NULL) {
  54.  
  55.                         (*tmp).rightNode=_node;
  56.  
  57.                         break;
  58.  
  59.                     } else {
  60.  
  61.                         tmp=(*tmp).rightNode;
  62.  
  63.                     }
  64.  
  65.                 } else {
  66.  
  67.                     if ((* tmp).leftNode==NULL) {
  68.  
  69.                         (* tmp).leftNode=_node;
  70.  
  71.                         break;
  72.  
  73.                     } else {
  74.  
  75.                         tmp=(* tmp).leftNode;
  76.  
  77.                     }
  78.  
  79.                 }
  80.  
  81.             }
  82.  
  83.         }
  84.  
  85.     }
  86.  
  87.     void preOrderDisplay(Node * node) {
  88.  
  89.         cout << (*node).data <<endl;
  90.  
  91.         if ((*node).leftNode!=NULL) {
  92.  
  93.             preOrderDisplay((*node).leftNode);
  94.  
  95.         }
  96.  
  97.         if ((*node).rightNode!=NULL) {
  98.  
  99.             preOrderDisplay((*node).rightNode);
  100.  
  101.         }
  102.  
  103.     }
  104.  
  105. };
  106.  
  107. int main() {
  108.  
  109.     Node* firstNode=new Node(1);
  110.  
  111.     Node* secondNode=new Node(2);
  112.  
  113.     Node* thirdNode=new Node(3);
  114.  
  115.     Node* fourthNode=new Node(4);
  116.  
  117.     BinarySearchTree bst;
  118.  
  119.     bst.insert(fourthNode);
  120.  
  121.     bst.insert(firstNode);
  122.  
  123.     bst.insert(thirdNode);
  124.  
  125.     bst.insert(secondNode);
  126.  
  127.     bst.preOrderDisplay(bst.root);
  128.  
  129.     return 0;
  130.  
  131. }