memcpy(bloque, &header, sizeof(B_NodoHeader));
fwrite(bloque, idx->tam_bloque, 1, fp);
+ free(bloque);
fclose(fp);
}
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 */
/* lleno el lado derecho e izquierdo */
for(i=0, j=0; i<cant_claves/3; i++, j++)
c_izq[j] = buffer[i];
- prom1 = buffer[i];
+ prom1 = buffer[i++];
h_izq.cant = j;
for(j=0; i<2*cant_claves/3; i++, j++)
c_der[j] = buffer[i];
h_der.cant = j;
- prom2 = buffer[i];
+ prom2 = buffer[i++];
for(j=0; i<cant_claves; i++,j++)
c_nuevo[j] = buffer[i];
h_nuevo.cant = j;
/* 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);
}
#include "indice_b_asc.c"
-