Я пытаюсь завершить код, который вставит узел в двоичное дерево, следуя указаниям «L», «R», «F» или «M», чтобы определить, где будет находиться узел.Мне нужно только завершить часть кода кода после цикла for.
Я предполагаю, что лучший способ реализовать это - использовать операторы if.
/ * Вставить узел вдвоичное дерево с указанием направления для достижения родительского узла данных * для вставки.Мы используем указания, чтобы найти, где в дереве «подключить» узел
* TODO 5. Завершить реализацию этого метода.* Пример: направления могут быть "LLRL": * Первые (n-1) символы (при условии, что направления имеют n символов) указывают, как перемещаться (влево, * вправо, отец, мать) от корня к узлу, после чего вставка будетпроисходят.* Последний символ указаний указывает, вставлять ли как левый узел или правый узел (или как родительскую линию * или материнскую линию).* Большая часть кода дана вам ниже, но посмотрите «TODO 5» для указания того, где завершить код.
public void insertDataAtLocation(String directions, T data) {
// if directions = "0", it means that the data to insert will be the root
if (directions.equals("0")) {
root = new BTNode<T>(data);
return;
}
// if the data to insert was not the root, we need to traverse the tree so as to
// find the location where to insert it.
// We create an iterator, just like we do for singly linked lists
BTNode<T> iter = root;
// And now we follow directions:
for (int j = 0; j < directions.length() - 1; j++) {
if(directions.charAt(directions.length()) == 'L'){
}
if(directions.charAt(directions.length()) == 'R'){
}
}
// Let's build the node to be plugged
BTNode<T> N = new BTNode<T>(data);
// Now we "plug" / insert the new node in the proper side (left or right)
// depending on the last character of directions
if (directions.charAt(directions.length()-1) == 'L' || directions.charAt(directions.length()-1) == 'F') {
iter.setLeft(N);
}
if (directions.charAt(directions.length()-1) == 'R' || directions.charAt(directions.length()-1) == 'M') {
iter.setRight(N);
}
}