Пример #1
0
void Tree::insertAux(Node *node, int data) {
    if(data < node->data) {
        if(node->left == nullptr) {
            node->left = defineNode(data);
        } else {
            insertAux(node->left, data);
        }
    } else if(data > node->data) {
        if(node->right == nullptr) {
            node->right = defineNode(data);
        } else {
            insertAux(node->right, data);
        }
    }
}
Пример #2
0
void Tree::insert(int data) {
    if(top == nullptr) { // define top
        top = defineNode(data);
    } else {
        insertAux(top, data);
    }
}
Пример #3
0
 void insertAux(TreeNode * parent, TreeNode * n) {
     assert(parent && n);
     if (rand() % 2) { // Left
         if (parent->left) {
             insertAux(parent->left, n);
         } else {
             parent->left = n;
         }
     } else { // Right
         if (parent->right) {
             insertAux(parent->right, n);
         } else {
             parent->right = n;
         }
     }
 }
Пример #4
0
 void insert(int v) {
     TreeNode * n = new TreeNode(v);
     if (!root) {
         root = n;
     } else {
         insertAux(root, n);
     }
 }