X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/ad2c7ad2d8e8e460bc0f9d790da9b7f315bc0125..fe7cadabd775ddd59714749b7dfe31a578c6ecca:/emufs/indice_b.c?ds=sidebyside diff --git a/emufs/indice_b.c b/emufs/indice_b.c index f18312a..7597661 100644 --- a/emufs/indice_b.c +++ b/emufs/indice_b.c @@ -845,6 +845,7 @@ void b_pasar_clave_a_derecha(INDICE *idx, char *der, int der_id, char *padre, in b_leer_header(der, &der_h); padre_entries = b_leer_claves(padre, &padre_h); /* Inserto en el hijo derecho la clave del padre */ + PERR("PASAR CLAVE DERECHA"); b_insertar_en_nodo_con_lugar(idx, padre_entries[padre_pos].clave, padre_entries[padre_pos].dato, der_id, der, der_h.hijo_izquierdo, entry.hijo_derecho); /* Reemplazo clave del padre por clave nueva */ @@ -1281,11 +1282,22 @@ CLAVE emufs_indice_b_obtener_sig_clave(INDICE *idx, CLAVE k) /* Busco al mi padre, perdido en un maremoto hace mucho,muchos * aƱos */ - free(nodo); + tmp = nodo; if (header.padre == -1) { - salida.i_clave = -1; + if (nodo_id == 0) { + /* Bien, son el nodo raiz y aca tendria que ir hacia mi hijo + * derecho + */ + nodo = b_leer_nodo(idx, claves[header.cant-1].hijo_derecho); + free(tmp); + b_leer_header(nodo, &header); + claves = b_leer_claves(nodo, &header); + + salida = claves[0].clave; + } return salida; } + free(nodo); nodo = b_leer_nodo(idx, header.padre); b_leer_header(nodo, &header); claves = b_leer_claves(nodo, &header);