]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3_bplus_main.c
arreglos en el tree view
[z.facultad/75.06/emufs.git] / emufs / tipo3_bplus_main.c
index 37c8e312fdfb30595e95c2688c6bce0f0f3126da..4531942c942c6f2fe0c6dd447be4e22a1333138d 100644 (file)
@@ -19,11 +19,12 @@ int no_esta(int num, int* vec, int len)
 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]);
@@ -32,11 +33,11 @@ void ver_arbol(EMUFS *emu)
                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);
        }
 }