public virtual bool Contem(T valor, out Recorrencia <T> recorrenciaComValor)
 {
     if (Atual.CompareTo(valor) == 0)
     {
         recorrenciaComValor = this;
         return(true);
     }
     else if (Atual.CompareTo(valor) > 0)
     {
         if (AnteriorNaRecorrencia.Atual.CompareTo(valor) < 0)
         {
             recorrenciaComValor = null;
             return(false);
         }
         else
         {
             recorrenciaComValor = null;
             return(AnteriorNaRecorrencia.Contem(valor, out recorrenciaComValor));
         }
     }
     else
     {
         if (ProximoNaRecorrencia.Atual.CompareTo(valor) > 0)
         {
             recorrenciaComValor = null;
             return(false);
         }
         else
         {
             recorrenciaComValor = null;
             return(ProximoNaRecorrencia.Contem(valor, out recorrenciaComValor));
         }
     }
 }
 public virtual bool Contem(T valor)
 {
     if (Atual.CompareTo(valor) == 0)
     {
         return(true);
     }
     else if (Atual.CompareTo(valor) > 0)
     {
         if (AnteriorNaRecorrencia.Atual.CompareTo(valor) < 0)
         {
             return(false);
         }
         else
         {
             return(AnteriorNaRecorrencia.Contem(valor));
         }
     }
     else
     {
         if (ProximoNaRecorrencia.Atual.CompareTo(valor) > 0)
         {
             return(false);
         }
         else
         {
             return(ProximoNaRecorrencia.Contem(valor));
         }
     }
 }