繁体   English   中英

具有键值对的树找不到键

[英]Tree With Key-Value Pair Not Finding Key

我有一棵树,存储键及其值。 这是我的查找操作:

public int find(int k) {
    System.out.println(k + " : " + this.k);
    if (k == this.k) {
        return 1;
    }

    if (k < this.k){
        if (left != null) {
            left.find(k);
        }
    } else {
        if (right != null) {
            right.find(k);
        }
    }
    return 0;
}

尝试找到树的根时,此方法工作正常。 例如,这是输入和查找键的一些输出:

在此处输入图片说明

c 5使用单个密钥生成根节点。 (默认值为0.0)

e 5调用我的find()函数,并以5、4、8、9 ..作为键。 谁能告诉我为什么即使键的输出是匹配的,但它们却不返回1?

提前致谢!

如果在根目录中找不到该键,则将在左侧或右侧子级上递归调用方法,但是您将忽略结果并返回0 尝试

return left.find(k);

return right.find(k);

另外,您似乎返回的是1而不是值。 我在这里只看到与密钥相关的代码。 您可能要在这里返回一个值,而不是1 另外, 0可以是有效值吗? 如果是这样,则返回0可能意味着您找到了0或没有找到匹配项。 您可能要抛出NoSuchElementException ,而不是返回0,而不是返回0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM