请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

1回答

由于你没有将返回值赋值给树,所以新创建的节点没有和原本的二叉树建立起联系。其实就是,新建立的节点并没有添加给二叉树:)


请参考课程的官方代码:https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/05-Binary-Search-Tree/Course%20Code%20(C%2B%2B)/03-Binary-Search-Tree-Insert/main.cpp

// 向以node为根的二分搜索树中, 插入节点(key, value), 使用递归算法    
// 返回插入新节点后的二分搜索树的根    
Node* insert(Node *node, Key key, Value value){    
    if( node == NULL ){    
        count ++;    
        return new Node(key, value);    
    }    
    
    if( key == node->key )    
        node->value = value;    
    else if( key < node->key )    
        // 注意:insert的结果必须赋值给node->left,
        // 才能将新添加的节点挂接到二叉树上
        node->left = insert( node->left , key, value);    
    else    // key > node->key  
        // 同理:insert的结果必须赋值给node->right,
        // 才能将新添加的节点挂接到二叉树上  
        node->right = insert( node->right, key, value);    

    return node;    
}


这个课程的所有代码都可以通过课程官方github获得。遇到按照视频尝试编写代码却出现错误,自己也调试不好的情况,可以尝试在你的环境下运行课程的官方代码看是否有同样的问题。如果没有问题,可以仔细和课程的官方代码进行调试比对,看看自己的代码哪里有问题:)


课程官方代码传送门:https://github.com/liuyubobobo/Play-with-Algorithms 


加油!:)


2 回复 有任何疑惑可以回复我~
  • 提问者 SD_Kaden #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-09-02 13:51:47
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号