/** * Constructor de la clase NodoBinario. * @param valor Valor específico que el nodo almacenará. */ public NodoAVL(Comparable valor) { this.valor = valor; this.izquierdo = null; this.derecho = null; this.id = correlativo++; }
/** * Método que inserta un Nodo en el árbol binario de búsqueda. * @param val Valor que se desea insertar. */ void insertar(Comparable val) { //Si el valor a insertar es menor que el nodo actual, entonces debería //insertarse a la izquierda de este. if (val.compareTo(valor) < 0) { //Si la izquierda del nodo actual esta desocupada entonces se inserta. if (izquierdo == null) { izquierdo = new NodoAVL(val); } //De lo contrario nos desplazamos al nodo izquierdo, en busca de un //lugar para insertar el nuevo nodo. else { izquierdo.insertar(val); } } //Si el valor a insertar es mayor que el nodo actual, entonces debería //insertarse a la derecha de este de este. else if (val.compareTo(valor) > 0) { //Si la derecha del nodo actual esta desocupada entonces se inserta. if (derecho == null) { derecho = new NodoAVL(val); } //De lo contrario nos desplazamos al nodo derecho, en busca de un //lugar para insertar el nuevo nodo. else { derecho.insertar(val); } } else { //Si no es mayor ni menor, significa que es igual, entonces se despliega //un mensaje de error de que no se aceptan duplicados en el árbol. System.err.println("No se permiten los valores duplicados: \"" + String.valueOf(val) + "\"."); } }