Как удалить «последний элемент» дерева LCRS? - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь построить левое дочернее дерево справа, но в моем коде есть ошибка.

Ошибка возникает, когда я собираюсь удалить «последний элемент» из моего дерева.В основном примере этого небольшого проекта , если я «сотру» число 9 и напечатаю print () после этого, тогда будет показано число 0 вместо 9, но ни один не должен быть показан.

void remove(T value){
        auto *node = this->search_node(value);

        if(node == NULL){
            std::cout << std::endl << "The value is not in the tree" << std::endl;
        } else if(node == this->root) {
            this->root = NULL;
        } else {
            if(node->sibling == NULL && node->child == NULL) {
                // Works, but attribute "0" to the node->value when I print
                *node = NULL; 
            } else if(node->sibling == NULL && node->child != NULL){
                *node = *node->child;
            } else {
                *node = *node->sibling;
            }
        }
    }

Я знаю, что на самом деле я не удаляю удаляемое значение, поэтому советы и советы по этому поводу тоже приветствуются.

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