Example #1
0
 public arbolABB()
 {
     raiz = null;
 }
Example #2
0
        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);
        }
Example #3
0
 public NodoArbol(int dato)
 {
     this.dato = dato;
     derecha   = izquierda = null;
 }