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); }
public ArbolBPlus() { raiz = new Hoja(); raiz.nuevaHoja(); }