Exemplo n.º 1
0
        public static Nodo Promover(Hoja hoja)
        {
            Nodo nodoaPromover;
            int  posicionMedio = Constants.ordenArbol / 2;

            nodoaPromover = hoja.Nodos.ElementAt(posicionMedio);
            Hoja hijosIzq = new Hoja();
            Hoja hijosDer = new Hoja();

            if (hoja.indice)
            {
                hijosIzq.nuevoIndice();
                hijosDer.nuevoIndice();
                hoja.Nodos.RemoveAt(posicionMedio);
            }
            else
            {
                hijosIzq.nuevaHoja();
                hijosDer.nuevaHoja();
            }

            hijosIzq.Nodos = hoja.Nodos.Take(posicionMedio).ToList();
            hijosDer.Nodos = hoja.Nodos.Skip(posicionMedio).ToList();

            if (hoja.indice)
            {
                hijosIzq.hojaSiguiente = null;
            }
            else
            {
                hijosIzq.hojaSiguiente = hijosDer;
            }
            nodoaPromover.hijosIzq = hijosIzq;
            nodoaPromover.hijosDer = hijosDer;
            return(nodoaPromover);
        }
Exemplo n.º 2
0
 public ArbolBPlus()
 {
     raiz = new Hoja();
     raiz.nuevaHoja();
 }