示例#1
0
文件: Nodos.cs 项目: dage23/St.John
 public cNodo(T value, cNodo <T> nPadre, cNodo <T> nIzquierda, cNodo <T> nDerecha)
 {
     sInformacion    = value;
     this.nDerecha   = nDerecha;
     this.nIzquierda = nIzquierda;
     this.nPadre     = nPadre;
 }
示例#2
0
        public T Encontrar(Delegate comparer, T value)
        {
            cNodo <T> Aux = this.Raiz;

            while (Aux != null)
            {
                if ((int)comparer.DynamicInvoke(Aux.sInformacion, value) == 0)
                {
                    return(Aux.sInformacion);
                }
                else
                {
                    if ((int)comparer.DynamicInvoke(Aux.sInformacion, value) > 0)
                    {
                        Aux = Aux.nIzquierda;
                    }
                    else if ((int)comparer.DynamicInvoke(Aux.sInformacion, value) < 0)
                    {
                        Aux = Aux.nDerecha;
                    }
                    else
                    {
                        return(default(T));
                    }
                }
            }
            return(default(T));
        }
示例#3
0
 public void Insertar(T value)
 {
     if (Raiz == null)
     {
         Raiz = new cNodo <T>(value);
     }
     else
     {
         cNodo <T> Temporal   = Raiz;
         bool      Encontrado = false;
         while (!Encontrado)
         {
             int ValueComp = Temporal.sInformacion.CompareTo(value);
             if (ValueComp > 0)
             {
                 if (Temporal.nIzquierda == null)
                 {
                     Temporal.nIzquierda = new cNodo <T>(value, Temporal);
                     return;
                 }
                 else
                 {
                     Temporal = Temporal.nIzquierda;
                 }
             }
             else if (ValueComp < 0)
             {
                 if (Temporal.nDerecha == null)
                 {
                     Temporal.nDerecha = new cNodo <T>(value, Temporal);
                     return;
                 }
                 else
                 {
                     Temporal = Temporal.nDerecha;
                 }
             }
             else
             {
                 return;
             }
         }
     }
 }
示例#4
0
文件: Nodos.cs 项目: dage23/St.John
 public cNodo(T value, cNodo <T> nPadre)
 {
     sInformacion = value;
     this.nPadre  = nPadre;
 }
示例#5
0
 private ArbolBinarioBusqueda(cNodo <T> Raiz)
 {
     this.Raiz = Raiz;
 }