2016-12-02 81 views
-2

我必须在二叉树中实现字符串搜索方法。它将节点*作为输入,并再次输出节点*。二叉树搜索字符串C++

问题是由于某些指针异常它不能正常工作,它给了我错误。

如果我不清楚,请告诉我。

预先感谢您

-var创建:无法创建可变对象错误

zoo_tree::node* tree_tools::search(zoo_tree::node* from,string animal) { 
if (from != NULL) { 
    if (from->question == animal) { 
     return from; 
    } 
    if (from->question != animal) { 
     search(from->left, animal); 
     search(from->right, animal); 

    } 
} 
return NULL; 

}

然而,上述工程的代码,有什么区别?

zoo_tree ::节点* tree_tools ::搜索(zoo_tree ::从,串动物节点*){

if (from == NULL) 
    return NULL; 

if (from->question == animal) 
    return from; 

if (from->question != animal) 
{ 
    search(from->left, animal); 
    search(from->right, animal); 
} 

}

回答

0

明显的错误在你的代码:递归调用search()不要”当它不为null时返回实例,因为递归调用必须递归返回。这意味着除非根是搜索到的节点,否则将返回NULL。

+0

非常感谢,我已更正了代码。 –