Я делаю рекурсивный метод вставки для двоичного дерева. Этот метод не может добавлять узлы в дерево. я не могу найти, что неправильно с этим методом. конструктор берет строчную метку для дочернего элемента и родительского узла.Java Binary Tree insert метод не работает
public void insert(String aLabel) {
//if compare is positive add to right else add to left
//basis case:
BSTreeNode aNode = new BSTreeNode(aLabel,null);
if (aNode.parent == null) {
aNode.parent = this;
}
inserts(this,aNode);
}
private void inserts(BSTreeNode aParent, BSTreeNode aNode){
//initially the root node is the parent however a proper parent is found thorough recursion
//left recursion:
if(aParent.getLabel().compareTo(aNode.getLabel()) <= 0) {
if (this.childrenLeft == null) {
this.childrenLeft = aNode;
aNode.parent = this;
return;
} else {
childrenLeft.inserts(childrenLeft, aNode);
}
}
//right recursion
else {
if (this.childrenRight==null) {
this.childrenRight = aNode;
return;
}
else{
childrenRight.inserts(childrenRight,aNode);
}
}
}
Что проблема? Разве это просто не создает правильный BST или вы получаете какое-либо исключение? Ваше условие предложения first if кажется неправильным. Просто проверьте. Вы проверили, меньше ли родителей – SacJn