gpt4 book ai didi

java - 使用 Java 在 BST 中搜索单词

转载 作者:行者123 更新时间:2023-11-30 08:02:38 25 4
gpt4 key购买 nike

我想检查这个词是否存在于 BST 中。

有一个错误,它总是给我false:

if(listOfWords.contain(word))
write.print(word+" ");
// using this method but it does not work

private boolean contain(englishWord list, String word) {
if (list != null) {
contain(list.getLeft(), word);
if (word.equals(list.getWord())) {
return true;
}
contain(list.getRight(), word);
}
return false;
}

最佳答案

您的return true语句在递归中丢失了顺序。

你可以使用类似的东西,

if (list != null) {
if (word.equals(list.getWord()) || contain(list.getLeft(), word) || contain(list.getRight(), word)) {
return true;
}
}
return false;

但这将需要 O(n) 时间复杂度。 BST 旨在提供比这更好的性能。

如果您的 BST 按其应有的方式排列,那么类似的方法应该可以工作(并且比您的算法更有效)。

if (list != null) {
int compare = word.compareTo(list.getWord());
if (compare == 0) {
return true;
} else if (compare > 0) {
return contain(list.getRight(), word);
} else {
return contain(list.getLeft(), word);
}
}
return false;

关于java - 使用 Java 在 BST 中搜索单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31667705/

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