public int countOccurrences(String target){
int count=0;
node cursor=root;
while(cursor!=null){
int compare=target.compareTo(cursor.word);
if(compare==0) {
//System.out.println("aa"); stuck in here
count++;
}
else if(compare>0) cursor=cursor.right;
else cursor=cursor.left;
}
System.out.println(count);
return count;
}
我想在树中找到一个单词的出现(已经按字典顺序排序)。我的代码现在不断在屏幕上打印出“aa”...帮助?
答案 0 :(得分:1)
你在if语句中根本没有改变光标,你只是改变计数,这对光标没有影响,所以你陷入无限循环。当您找到匹配项以及递增计数时,您需要更改光标。请参阅下面的示例:
if(compare==0) {
//System.out.println("aa"); stuck in here
count++;
cursor = cursor.left
}
这假设它的排序方式,任何相同的东西都在左分支中。如果相反,则只需将cursor.left
更改为cursor.right
。