return 0;
} else {
if (i == 0) {
- if (header.nivel != 0) {
- nodo = b_leer_nodo(idx, header.hijo_izquierdo);
- nodo_id = header.hijo_izquierdo;
- } else {
- nodo = NULL;
- nodo_id = -1;
- }
+ nodo = b_leer_nodo(idx, header.hijo_izquierdo);
+ nodo_id = header.hijo_izquierdo;
} else {
- if (header.nivel != 0) {
- nodo = b_leer_nodo(idx, claves[i-1].dato.bloque);
- nodo_id = claves[i-1].dato.bloque;
- } else {
- nodo = NULL;
- nodo_id = -1;
- }
+ nodo = b_leer_nodo(idx, claves[i-1].hijo_derecho);
+ nodo_id = claves[i-1].hijo_derecho;
}
}
}
if (i == 0) {
nodo = b_leer_nodo(idx, header.hijo_izquierdo);
} else {
- nodo = b_leer_nodo(idx, claves[i-1].dato.bloque);
+ nodo = b_leer_nodo(idx, claves[i-1].hijo_derecho);
}
free(tmp);
}
}
tmp_claves[i].clave = clave;
tmp_claves[i].dato = dato;
+ tmp_claves[i].hijo_derecho = hijo1;
+ tmp_claves[i+1].hijo_derecho = hijo2;
while (i < nodo_header.cant) {
tmp_claves[i+1] = claves[i];
i++;
if (nodo_id != 0) {
clave = tmp_claves[total/2].clave;
- dato.bloque = nuevo_id;
+ /* XXX dato.bloque = nuevo_id; */
b_grabar_nodo(idx, nodo_id, nodo);
b_grabar_nodo(idx, nuevo_id, nuevo);
nodo = tmp_nuevo;
clave = tmp_claves[total/2].clave;
- dato.bloque = nuevo_id;
+ /* XXX dato.bloque = nuevo_id; */
b_grabar_nodo(idx, nuevo_id+1, nodo);
b_grabar_nodo(idx, nuevo_id, nuevo);
nodo_header.cant++;
claves[i].clave = clave;
claves[i].dato = dato;
+ claves[i].hijo_derecho = hijo2;
nodo_header.hijo_izquierdo = b_elegir_izquierdo(idx, nodo_header.hijo_izquierdo, hijo1);
b_actualizar_header(nodo, &nodo_header);