Трассировка указателя в BST - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу построить свой собственный BST, используя указатели.Проблема в вставке данных, вероятно, в «трассировке» в этом дереве.Я новичок в указателях и, возможно, я что-то пропустил.

#include <iostream>

using namespace std;

struct tree {
    int data;
    tree * left;
    tree * right;

    void add(int data);
};
tree * root = NULL;

void tree::add(int data) {
    tree * tmp = new tree;
    tmp->data = data;
    tmp->left = NULL;
    tmp->right = NULL;

    if (root == NULL) {
        root = tmp;
    } 
    else if(root->data >= data) {
        tree * current = root;

        if (current->left == NULL) {
            current->left = tmp;
        } else {
            while (current->left != NULL || current->right != NULL) {
                if (data <= current->data) {
                    current = current->left;
                } else {
                    current = current->right;
                }
            }// problem is here
        }
    }
}

int main(){
    tree * tmp = new tree;

    tmp->add(100);
    tmp->add(60);
    tmp->add(50);
    tmp->add(90);
}
...