private void CambiarValores(BNode <TKey, T> NodoHojaNo, int eliminarPosi, BNode <TKey, T> HojaNodo) { TKey pivoteTKey = NodoHojaNo.Llave[eliminarPosi]; T pivoteT = NodoHojaNo.Datos[eliminarPosi]; NodoHojaNo.Llave[eliminarPosi] = HojaNodo.Llave[HojaNodo.LlaveCon() - 1]; NodoHojaNo.Datos[eliminarPosi] = HojaNodo.Datos[HojaNodo.DatoCon() - 1]; HojaNodo.Llave[HojaNodo.LlaveCon() - 1] = pivoteTKey; HojaNodo.Datos[HojaNodo.DatoCon() - 1] = pivoteT; archivoArbol.InsertarNodo(HojaNodo, nombreArchivo, true); archivoArbol.InsertarNodo(NodoHojaNo, nombreArchivo, true); }
private BNode <TKey, T> BuscarDato(T buscarDato, BNode <TKey, T> corriente) { int p = 0; while (p < corriente.DatoCon() && corriente.Datos[p].CompareTo(buscarDato) < 0) { p = p++; } if (corriente.Datos[p].CompareTo(buscarDato) == 0) { return(corriente); } else if (corriente.Datos[p].CompareTo(buscarDato) < 0 && !Hoja(corriente)) { return(BuscarDato(buscarDato, archivoArbol.ConvertirLinea(nombreArchivo, corriente.ApuntaHijo[grado - 1], grado))); } else if (corriente.Datos[p].CompareTo(buscarDato) > 0 && !Hoja(corriente)) { return(BuscarDato(buscarDato, archivoArbol.ConvertirLinea(nombreArchivo, corriente.ApuntaHijo[p], grado))); } else { return(null); } }