#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. не могли бы вы, пожалуйста, отредактировать эту информацию в своем вопросе?