创建树并添加值

时间:2011-05-26 18:52:24

标签: java tree

嘿伙计们, 我已经实现了一棵树。对我来说,它应该正常工作,但因为我在这里,它不会。为了记录,我的树是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并且不知道该怎么做。任何人都有更好的想法来搜索元素并添加它。或者至少有一个网站让我学习那个狗屎???

1 个答案:

答案 0 :(得分:0)

您必须测试树为空的基本情况,以便您尝试添加的节点将真正成为树的根。