示例#1
0
        private NodoAvl insertarAvl(NodoAvl raiz, Comparador dt, Logical h)
        {
            // NodoAvl n1;
            if (raiz == null)
            {
                raiz = new NodoAvl(dt);
                h.setLogical(true);
            }

            else if (dt.menorNumero(raiz.valorNodo()))
            {
                ramaDerecha(raiz, dt, h);
            }
            else if (dt.mayorNumero(raiz.valorNodo()))
            {
                ramaIzquierda(raiz, dt, h);
            }
            // raiz 1 Guatemala loclla
            //      derecho 1. zacapa lolo

            //    1 zacapa papa
            else if (dt.igualque(raiz.valorNodo()))
            {
                if (dt.departamentoMayor(raiz.valorNodo()))
                {
                    raiz = ramaDerecha(raiz, dt, h);
                }

                else if (dt.departamentoMenor(raiz.valorNodo()))
                {
                    raiz = ramaIzquierda(raiz, dt, h);
                }

                else if (dt.departamentoIgual(raiz.valorNodo()))
                {
                    if (dt.nombreAlfabeticoDer(raiz.valorNodo()))
                    {
                        raiz = ramaDerecha(raiz, dt, h);
                    }

                    else if (dt.nombreAlfabeticoIzq(raiz.valorNodo()))
                    {
                        raiz = ramaIzquierda(raiz, dt, h);
                    }
                }
            }

            else
            {
                throw new Exception("No puede haber claves repetidas ");
            }
            return(raiz);
        }