public NodoArbol() { this.der = null; this.izq = null; }
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); }