2014-12-13 25 views
0

字符我寫在特里樹的插入方法,但我想保持字符之間的秩序,但有一些錯誤,我可以不知道是不是因爲樹的根還是空插入下令特里

public void insert (String name,TrieNode r) 
{ 
    if(r==null && name.length()>0) 
    { 
     r=new TrieNode(name.charAt(0)); 
     if(name.length()>1) 
     insert(name.substring(1),r.getFirstChild()); 
    } 
    else if(r.getletter()==name.charAt(0)) 
    { 
     name=removeFirstChar(name); 
     insert(name,r.getFirstChild()); 
    } 
    else 
    { 
     if(name.charAt(0) < r.getletter()) 
     { 
      TrieNode n=new TrieNode(name.charAt(0)); 
      n.setNextSibling(r); 
      r.setFirstChild(n); 
     } 
     else 
      insert(name,r.getNextSibling()); 

    } 
} 
+0

如果你格式化你的代碼,它會有所幫助。 – 2014-12-13 11:04:51

+0

我很抱歉,但這是我第一次問這是好現在 – 2014-12-13 11:05:58

+1

也許你可以包含TrieNode的代碼,並向我們展示樹如何看起來像?即您正在談論的角色之間的順序。 – Gosu 2014-12-13 12:13:54

回答

0

我不是Java方面的專家,但僅僅通過閱讀代碼的第一對夫婦行,我注意到您正在初始化r=new TrieNode(name.charAt(0));。這在Java中不起作用,因爲對象是通過值而不是通過引用傳遞的,所以你基本上不能改變它們在函數內部指向的內容。

閱讀文章this瞭解更多詳情。