private void insertarRecursivamente(TKey newKey, TData newData, nodoB <TKey, TData> Current)
 {
     if (Current.esHoja())
     {
         if (!Current.estaLleno()) /*Insertará si y solo si es hoja y está vacío*/
         {
             Current.insertar(newKey, newData);
             actaulizarNodo(Current);
         }
         else
         {
             //Esto indica que donde se iba a inseratr está lleno
             nodoB <TKey, TData> aux = AccessTonodoB(Current.Padre);
             InsertPop(Current, newData, newKey, posicionPrincipal(aux, newKey));
         }
     }
     else
     {
         //Se moviliza hacia otro nodo
         if (newKey.CompareTo(Current.nodoLlaves[0]) == -1)
         {
             insertarRecursivamente(newKey, newData, AccessTonodoB(Current.Hijos[0]));
         }
         else if (newKey.CompareTo(Current.nodoLlaves[0]) == 1)
         {
             int index = obtenerIndiceParaInsertar(Current, newKey);
             insertarRecursivamente(newKey, newData, AccessTonodoB(Current.Hijos[index]));
         }
         else
         {
             Cuenta--;
         }
     }
 }
 private List <string> InOrderRecursivo(nodoB <TKey, TData> currentnodoB, List <string> data)
 {
     if (currentnodoB == null)
     {
         return(data);
     }
     if (currentnodoB.esHoja())
     {
         for (int i = 0; i < currentnodoB.datosNodo.Count; i++)
         {
             IList <string> values = retornarDatos(currentnodoB.datosNodo[i]);
             string         line   = "";
             for (int j = 0; j < values.Count; j++)
             {
                 line += values[j] + "|";
             }
             data.Add(line.Remove(line.Length - 1) + "\n");
         }
         return(data);
     }
     else
     {
         for (int i = 0; i < currentnodoB.Hijos.Count; i++)
         {
             data.Concat(InOrderRecursivo(AccessTonodoB(currentnodoB.Hijos[i]), data));
             if (i < currentnodoB.datosNodo.Count)
             {
                 IList <string> values = retornarDatos(currentnodoB.datosNodo[i]);
                 string         line   = "";
                 for (int j = 0; j < values.Count; j++)
                 {
                     line += values[j] + "|";
                 }
                 data.Add(line.Remove(line.Length - 1) + "\n");
             }
         }
         return(data);
     }
 }