如何计算树中元素的出现次数?

时间:2014-02-18 01:26:20

标签: java string printing count tree

   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”...帮助?

1 个答案:

答案 0 :(得分:1)

你在if语句中根本没有改变光标,你只是改变计数,这对光标没有影响,所以你陷入无限循环。当您找到匹配项以及递增计数时,您需要更改光标。请参阅下面的示例:

if(compare==0) {
    //System.out.println("aa");  stuck in here
    count++;
    cursor = cursor.left 
}

这假设它的排序方式,任何相同的东西都在左分支中。如果相反,则只需将cursor.left更改为cursor.right