Добавление элемента в дерево

#java #tree #root

#java #дерево #root

Вопрос:

Когда я пытаюсь добавить некоторые элементы в дерево, я использую следующий метод:

 void add(City added, City parent){
    //parentNode is where the element should be added
    TreeNode<City> parentNode = search(parent,this);
    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));
    }
}
  

Тем не менее, проблема в том, что когда я вызываю метод с помощью «this», я предполагаю, что основное дерево не меняется. Например, когда дерево состоит из одного элемента, я могу правильно добавить любой элемент, который я хочу. Однако, скажем, мое дерево состоит из целого числа 1, забудьте о других вещах. Когда я добавляю 2 в свое дерево, никаких проблем. Но когда я хочу добавить 3 в качестве дочернего элемента 2, мой код отстой!

Должен ли я использовать root, и если да, то как я должен это реализовать?

Комментарии:

1. Не могли бы вы, пожалуйста, добавить еще немного контекста к вашему вопросу? Вероятно, был бы полезен некоторый код.

2. и что будет root храниться? если он сохраняется this , я думаю, у вас есть свой ответ…

3. не могли бы вы, пожалуйста, отредактировать эту информацию в своем вопросе?