gpt4 book ai didi

c - 二叉搜索树查找输出

转载 作者:行者123 更新时间:2023-12-03 21:10:57 25 4
gpt4 key购买 nike

我正在尝试为二叉搜索树实现查找功能。虽然如果我查找树的根,它确实返回 true,但当我查找树中的其他条目时,它返回 false。当我调试它时,该函数似乎返回 1,但会继续运行,最后返回 0。我的理解是该函数应该在返回任何值后立即终止,所以我不确定为什么会发生这种情况。

int lookup(int n,struct node* x)
{
if (x->data==n)
{
return 1;
}
else if (x->left==NULL && x->right==NULL)
{
return 0;
}
else if (n>x->data && x->right!=NULL)
{
lookup(n,x->right);
}
else
{
lookup(n,x->left);
}
return 0;
}

最佳答案

您的递归返回的值 lookup调用(即 lookup(n,x->right);lookup(n,x->left); )被忽略,即使它是正确的。
这是因为在函数结束时(即从其中一个调用返回后)您无条件地 return 0; .
更换 lookup(n,x->XXX);return lookup(n,x->XXX);是你想要做的。

关于c - 二叉搜索树查找输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63884780/

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