1
嘿家伙, 我已经实现了一棵树。对我来说,它应该正常工作,但因为我在这里,所以没有。为了记录,我的树的类型是City,它有三个字段,其中一个是您将看到的名称。看看我的代码:创建树并添加值
void add(City added, City parent){
//added is what is going to be added and child of parent. I first find parent in tree
//search method is coming after
TreeNode<City> parentNode = search(parent,this);
if (parentNode.hasLeftChild() && parentNode.getLeftChild().getCity().equals(parent))
parentNode = parentNode.getLeftChild();
else if (parentNode.hasNextSibling() && parentNode.getNextSibling().getCity().equals(parent))
parentNode = parentNode.getNextSibling();
else if (!parentNode.hasLeftChild())
parentNode.setLeftChild(new TreeNode<City>(added,null,null));
else {
TreeNode<City> next = parentNode.getLeftChild();
while(next.hasNextSibling())
next = next.getNextSibling();
next.setNextSibling(new TreeNode<City>(added,null,null));
}
}
public TreeNode<City> search(City parent, TreeNode<City> t){
if (t.getCity().equals(parent))
return t;
else if (t.hasLeftChild())
return search(parent,t.getLeftChild());
else
return search(parent,t.getNextSibling());
}
我一直在采取nullpointerexception,不知道该怎么做。任何人都有更好的想法来搜索一个元素并添加它。或者至少有一个网站让我学习这个狗屎?
什么是NPE的堆栈跟踪?它应该告诉你它发生的确切的代码行,这使得对每个人来说,排除故障变得容易很多。 – 2011-05-26 19:07:26
是的,我看到问题出在哪里。当我为leftchild调用方法时,如果最终的孩子不是我正在寻找的孩子,它会给出错误。我想知道如何解决它 – 2011-05-26 19:20:22