Beispiel #1
0
        protected Nodo InsertarEnArbol(Nodo RaizSub, IComparador dato)
        {
            if (RaizSub == null)
            {
                RaizSub = new Nodo(dato);
            }
            else if (dato.MenorQue(RaizSub.Dato))
            {
                Nodo iz;
                iz = InsertarEnArbol(RaizSub.NodoIzquierdo, dato);
                RaizSub.NodoIzquierdo = iz;
            }
            else if (dato.MayorQue(RaizSub.Dato))
            {
                Nodo dr;
                dr = InsertarEnArbol(RaizSub.NodoDerecho, dato);
                RaizSub.NodoDerecho = dr;
            }
            else
            {
                throw new Exception("Nodo duplicado");
            }

            return(RaizSub);
        }
 public ServicoIncluirUsuariosAD(IComparador comparador,
                                 IConsultaOU consultaOU,
                                 IRepositorioAD repositorioAD,
                                 IRepositorioCoreSSO repositorioCoreSSO,
                                 IRepositorioADSync repositorioADSync)
 {
     this.comparador         = comparador ?? throw new ArgumentNullException(nameof(comparador));
     this.consultaOU         = consultaOU ?? throw new ArgumentNullException(nameof(consultaOU));
     this.repositorioAD      = repositorioAD ?? throw new ArgumentNullException(nameof(repositorioAD));
     this.repositorioCoreSSO = repositorioCoreSSO ?? throw new ArgumentNullException(nameof(repositorioCoreSSO));
     this.repositorioADSync  = repositorioADSync ?? throw new ArgumentNullException(nameof(repositorioADSync));
 }
Beispiel #3
0
 protected Nodo Localizar(Nodo raizSub, IComparador buscado)
 {
     if (raizSub == null)
     {
         return(null);
     }
     else if (buscado.IgualQue(raizSub.Dato))
     {
         return(Raiz);
     }
     else if (buscado.MenorQue(raizSub.Dato))
     {
         return(Localizar(raizSub.NodoIzquierdo, buscado));
     }
     else
     {
         return(Localizar(raizSub.NodoDerecho, buscado));
     }
 }
Beispiel #4
0
 protected Nodo EliminarEnArbol(Nodo RaizSub, IComparador dato)
 {
     if (RaizSub == null)
     {
         throw new Exception("No encontrado nodo + clave");
     }
     else if (dato.MenorQue(Raiz.NodoIzquierdo))
     {
         Nodo iz;
         iz = EliminarEnArbol(RaizSub.NodoIzquierdo, dato);
         RaizSub.NodoIzquierdo = iz;
     }
     else if (dato.MayorQue(RaizSub.NodoDerecho))
     {
         Nodo dr;
         dr = EliminarEnArbol(RaizSub.NodoDerecho, dato);
         RaizSub.NodoDerecho = dr;
     }
     else
     {
         Nodo q;
         q = RaizSub;
         if (q.NodoIzquierdo == null)
         {
             RaizSub = q.NodoDerecho;
         }
         else if (q.NodoDerecho == null)
         {
             RaizSub = q.NodoIzquierdo;
         }
         else
         {
             q = Reemplazar(q);
         }
         q = null;
     }
     return(RaizSub);
 }