[英]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.