Вставить узел рекурсивно в дерево двоичного поиска - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть этот код, это функция для рекурсивной вставки узла в BST:

void recursiveInsert(treeNode *subroot, treeNode *newNode) {
if (subroot == NULL) {
    subroot = newNode;
} else {
    if (newNode->data < subroot->data) {
        recursiveInsert(subroot->left, newNode);
    } else if (newNode->data > subroot->data) {
        recursiveInsert(subroot->right, newNode);
    } else
        cout << "Node has been existed!" << endl;
}
return;
}

Я хочу вставить узел в BST, но я не знаю, почему он не могРабота.Я пытался понять это, но я не мог понять, что не так.Не могли бы вы мне помочь.Спасибо

1 Ответ

0 голосов
/ 25 апреля 2019

Вы всегда вызываете recursiveInsert с NULL, а не с корнем.

Вам нужно инициализировать корень вне функции и создать указатель на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...