Создание дерева и добавление значений - PullRequest
1 голос
/ 26 мая 2011

Эй, ребята, Я реализовал дерево. Для меня это должно работать должным образом, но, поскольку я здесь, это не так. Для справки, мое дерево имеет тип City, в котором есть три поля, одно из которых name, как вы увидите. Посмотрите на мои коды:

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());
}

Я продолжаю принимать нулевое исключение и понятия не имею, что делать. Любой имеет лучшую идею для поиска элемента и добавления его. Или хотя бы веб-сайт для меня, чтобы узнать это дерьмо ???

1 Ответ

0 голосов
/ 26 мая 2011

Вы должны проверить базовый случай, когда ваше дерево равно нулю, чтобы узел, который вы пытаетесь добавить, действительно стал корнем дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...