二叉树无效函数

Binary Tree void function

本文关键字:函数 无效 二叉树      更新时间:2023-10-16

嘿伙计们,我应该编写一个函数,将给定的节点插入我的BT根。 插入节点后,树应保持BST的标准。 我的函数返回一个错误,指出"void 值未被忽略,因为它应该在递归定义中。请给我一个提示,有什么问题。

void InsertNode(Node* root, Node* node){
    if(root == NULL) {
            root = node;
    }
    else if(node->value <= root->value ){
        root->left = InsertNode(root->left,node);
    }
    else{
        root->right = InsertNode(root->right,node);
    }
    return ;
}

那么我如何分配此结构的给定节点:

struct Node{
int value; 
Node* left; 
Node* right; 
};

到空树根?

void InsertNode(Node* root, Node* node){
if (node->value==root->value) return;
if(node->value < root->value){
         root->left =  node;
         node->left++;
        }
if (node->value>root->value){
        root->right = node;
        node->right++;
 }
 }

所以现在我对我的函数有了这个想法,增加两个指针以穿过树是否正确?

您正在尝试将void分配给变量。 这对编译器没有意义。

顺便说一句,你的函数无论如何都不起作用。 将node分配给root不会执行任何超出InsertNode函数正文的操作。