gpt4 book ai didi

c++ - 在树C++中查找特定的节点高度

转载 作者:行者123 更新时间:2023-12-02 10:33:53 25 4
gpt4 key购买 nike

我试图遍历树并检查特定的(rel_name)并返回其高度,但是我的函数遍历“母亲”分支并仅检查父亲分支。
结果是我的程序返回exception()和核心转储。
我如何解决我的功能不核心转储也检查母亲分支?

string treeHeight(Person* root, string rel_name, int height){
height++;
if(root == nullptr) {
throw exception();
}
else if(root->name == rel_name) return to_string(height);
return treeHeight(root->father, rel_name, height);
return treeHeight(root->mother, rel_name, height);
}

最佳答案

有人已经指出了,但是如果您的代码到达了叶子并且走得更远,根据您的基本情况,它将抛出异常并退出程序。

我对您的代码做了一些修改:

int treeHeight(Person* root, const string& rel_name){
if(root == nullptr) {
return -1;
}
else if(root->name == rel_name) return 0;

int leftHeight = treeHeight(root->father, rel_name);
int rightHeight = treeHeight(root->mother, rel_name);

if (leftHeight == -1 && rightHeight == -1) {
return -1;
} else {
return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}
}

希望能帮助到你。

关于c++ - 在树C++中查找特定的节点高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61170153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com