2014-12-13 33 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了解更多详情。