Tengo una matriz de cadenas que están en orden AZ. Me preguntaba la mejor manera de ir sobre la clasificación de ellos por un árbol binario de búsqueda equilibrado. Mi idea inicial es dividir la matriz de arriba en la primera mitad y la segunda mitad y luego ordenarlos de forma individual.
¿No debería ser capaz de utilizar de manera recursiva para mantener la división por la mitad para obtener el siguiente nodo del árbol? No puedo envolver mi cabeza alrededor de ella en este momento y pensaba que iba a preguntar si alguien tenía alguna idea. me llevan en la dirección correcta o proporcionar algunos ejemplos. ¡Gracias!
estoy usando mi propia BinaryTree Clase y Clase BinaryTreeNode. EDITAR:
public class BinaryTree {
private BinaryTreeNode root;
public void insert(String text) {
root = insertNode(root, text);
}
private BinaryTreeNode insertNode(BinaryTreeNode curNode, String text) {
if (curNode == null) {
BinaryTreeNode newNode = new BinaryTreeNode(text);
//newNode.value = text;
return newNode;
} else {
if (text.compareTo(curNode.value) < 0 ) {
//left child
//use of recursion to properly place Node
curNode.left = insertNode(curNode.left, text);
return curNode;
}
else {
//right
//use of recursion to properly place Node
curNode.right = insertNode(curNode.right, text);
return curNode;
}
}
}
public BinaryTreeNode getRoot() {
return root;
}
public void setRoot(BinaryTreeNode root) {
this.root = root;
}
}
esto se consideraría un autobalanceo árbol binario de búsqueda?













