void ver_arbol(EMUFS *emu)
{
NODO_B_PLUS *nodo;
- int num_nodo, i, tecla;
+ int num_nodo, num_nodo_ant,i, tecla;
num_nodo =0;
while ( tecla != 666){
nodo = b_plus_leer_nodo(emu->indices, num_nodo);
+ printf("NODO: (hijo)clave\n");
printf("Nivel: %d\n", nodo->nivel);
for (i=0; i<nodo->cant_claves; i++)
printf("(%d)%d", nodo->hijos[i], nodo->claves[i]);
printf("Ingrese proximo nodo a explorar, o 666 para salir: ");
scanf("%d",&tecla);
printf("%d\n",tecla);
- if ( (no_esta(tecla, nodo->hijos, nodo->cant_claves+1) == -1) || (nodo->nivel==0) ){
- num_nodo =0;
+ if ( tecla!=0&&((no_esta(tecla, nodo->hijos, nodo->cant_claves+1) == -1) || (nodo->nivel==0)) ){
+ num_nodo = num_nodo_ant;
printf("El nodo no existe o es nivel cero\n");
}
- else num_nodo = tecla;
+ else num_nodo_ant = num_nodo = tecla;
b_plus_destruir_nodo(nodo);
}
}