private void AgregarArbol(int posiNodo, T dato, TKey compara) { // Segun la posición se obtiene BNode <TKey, T> posiNodoB = archivoArbol.ConvertirLinea(nombreArchivo, posiNodo, grado); // Verificamos que sea hoja if (posiNodoB.Hoja()) { for (int i = 0; i < grado; i++) { // Se inserta si la llave es menor al parametro del nodo if (compara.CompareTo(posiNodoB.Llave.ElementAt(i)) == -1 || posiNodoB.Llave.ElementAt(i) == null) { posiNodoB.Llave.Insert(i, compara); posiNodoB.Datos.Insert(i, dato); break; } } // Comprobacion de underflow al insertar UnderF(posiNodoB); } else { // Se observa si debe seguir la recursividad for (int i = 0; i < grado; i++) { // Se sigue aplicando recursividad si la llave es menor al parametro del nodo if (compara.CompareTo(posiNodoB.Llave.ElementAt(i)) == -1 || posiNodoB.Llave.ElementAt(i) == null) { AgregarArbol(posiNodoB.ApuntaHijo.ElementAt(i), dato, compara); break; } } } }