public arbolABB() { raiz = null; }
public bool eliminar(int id) { NodoArbol aux = raiz; NodoArbol padre = raiz; bool hijoIquierdo = true; while (aux.dato != id) { if (id < aux.dato) { hijoIquierdo = true; aux = aux.izquierda; } else { hijoIquierdo = false; aux = aux.derecha; } if (aux == null) { return(false); } } //fin del while if (aux.esHoja()) { if (aux == raiz) { raiz = null; } else if (hijoIquierdo) { padre.izquierda = null; } else { padre.derecha = null; } } else if (aux.derecha == null) { if (aux == raiz) { raiz = aux.izquierda; } else if (hijoIquierdo) { padre.izquierda = aux.izquierda; } else { padre.derecha = aux.izquierda; } } else if (aux.izquierda == null) { if (aux == raiz) { raiz = aux.derecha; } else if (hijoIquierdo) { padre.izquierda = aux.derecha; } else { padre.derecha = aux.izquierda; } } else { NodoArbol reemplazo = obtenerNodoReemplazo(aux); if (aux == raiz) { raiz = reemplazo; } else if (hijoIquierdo) { padre.izquierda = reemplazo; } else { padre.derecha = reemplazo; } reemplazo.izquierda = aux.izquierda; } return(true); }
public NodoArbol(int dato) { this.dato = dato; derecha = izquierda = null; }