public NodoArbol()
 {
     this.der = null;
     this.izq = null;
 }
Beispiel #2
0
        public (NodoArbol <T> numero, NodoArbol <T> datoNodo) Insertar(NodoArbol <T> raizSub, NodoArbol <T> reposi, T valor, T repositorio,
                                                                       Func <T, T, bool> MenorQue, Func <T, T, bool> MayorQue)
        {
            if (raizSub == null)
            {
                raizSub = new NodoArbol <T>
                {
                    data = valor, izq = null, der = null
                };

                reposi = new NodoArbol <T>
                {
                    data = repositorio, izq = null, der = null
                };
            }
            else if (MenorQue(valor, raizSub.data))
            {
                (raizSub.izq, reposi.izq) = Insertar(raizSub.izq, reposi.izq, valor, repositorio, MenorQue, MayorQue);
            }
            else if (MayorQue(valor, raizSub.data))
            {
                (raizSub.der, reposi.der) = Insertar(raizSub.der, reposi.der, valor, repositorio, MenorQue, MayorQue);
            }
            else
            {
                throw new Exception("Nodo duplicado");
            }


            return(raizSub, reposi);
        }