示例#1
0
        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;
                    }
                }
            }
        }