我目前正在编码一个二叉查找树,目前正在尝试实现一个递归函数来确定二叉树中是否存在一个节点。
这是节点类:
public class BSTNode
{
public String data; // use this for data and key
public BSTNode parent, leftchild, rightchild;
public BSTNode(String key)
{
this.data = key;
}
public Boolean Exists(String search)
{
if(data.equals(search))
return true;
else
{
if (search.compareToIgnoreCase(data) < 0 && leftchild != null)
{
leftchild.Exists(search);
}
else if (search.compareToIgnoreCase(data) > 0 && rightchild != null)
{
rightchild.Exists(search);
}
}
return false;
}
public void Insert(String key)
{
if(key.compareToIgnoreCase(data) < 0)
{
if(leftchild == null)
leftchild = new BSTNode(key);
else
leftchild.Insert(key);
}
else
{
if(rightchild == null)
rightchild = new BSTNode(key);
else
rightchild.Insert(key);
}
}
}
所讨论的函数是Exists函数。这是在BST的根节点上调用的,就像这样:root。存在(“价值”)
当最终满足节点时,Exists函数的基本情况会正确执行,但是返回false
语句是在返回堆栈未打算时执行的。我似乎无法更改函数以删除返回false
语句。
您忘记使用递归调用返回的值:
public Boolean Exists(String search)
{
if(data.equals(search))
return true;
else
{
if (search.compareToIgnoreCase(data) < 0 && leftchild != null)
{
return leftchild.Exists(search);
}
else if (search.compareToIgnoreCase(data) > 0 && rightchild != null)
{
return rightchild.Exists(search);
}
}
return false;
}
我有一个递归函数,它会重复这个函数,直到不满足if条件,然后输出一个整数。但是,此函数之外需要整数的函数正在接收一个单位。我应该如何修改代码以返回int? 这就是整个程序 }
我正在编写一个递归函数,如下所示: 此函数用于接收员工并查找其管理者。如果找到管理器,则将管理器id推送到数组中($)- 所以我的问题是,如果我不在第6行返回递归调用(这是-
我在构建递归函数时继续遇到一个问题,其中返回的值与我期望返回的值不同。我很确定这与函数的递归性质有关,但我不知道发生了什么。 在这个缩小的例子中,我有一个带有字符串的函数foo和一个默认值为0的int。给定字符串“测试”并且没有整数,我希望递归函数为每个调用增加numberToBack并将新值传递给下一个调用。这一定是部分正确的,因为如果我在到达基本情况时cout numberToBack,我将获
问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:
到目前为止,我们创建的函数都只是对传入的数据进行了处理,处理完了就结束。但实际上,在某些场景中,我们还需函数将处理的结果反馈回来,就好像主管向下级员工下达命令,让其去打印文件,员工打印好文件后并没有完成任务,还需要将文件交给主管。 Python中,用 def 语句创建函数时,可以用 return 语句指定应该返回的值,该返回值可以是任意类型。需要注意的是,return 语句在同一函数中可以出现多次
问题内容: 我编写了以下函数,以实现自己的二进制搜索 我知道我的实现已经关闭,但是我对理解递归堆栈更加好奇。 当我调用时,我的函数应返回的值 但相反,它返回None。此外,当我直接调用时 ,我得到的正确值为0。这怎么可能? 问题答案: 您将忽略递归调用的返回值。您还需要 显式地 返回它们: 递归调用与其他任何函数调用一样;他们将结果返回给调用者。如果忽略返回值,然后调用函数结束,那么您将以该调用函