From: Nicolás Dimov Date: Sun, 30 May 2004 19:00:33 +0000 (+0000) Subject: en los tree view ahora se puede pasar al hermano derecho de la hoja X-Git-Tag: svn_import_r684~67 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/1bb274f196f952622a90d210cd06f0639ece39ec?ds=inline en los tree view ahora se puede pasar al hermano derecho de la hoja --- diff --git a/emufs/tipo1_bplus_main.c b/emufs/tipo1_bplus_main.c index 119600a..6476d79 100644 --- a/emufs/tipo1_bplus_main.c +++ b/emufs/tipo1_bplus_main.c @@ -19,7 +19,7 @@ void ver_arbol(EMUFS *emu) NODO_B_PLUS *nodo; int num_nodo, num_nodo_ant,i, tecla; num_nodo =0; - + num_nodo_ant=0; while ( tecla != -1){ nodo = b_plus_leer_nodo(emu->indices, num_nodo); printf("NODO: (hijo)clave\n"); @@ -31,7 +31,15 @@ void ver_arbol(EMUFS *emu) printf("Ingrese proximo nodo a explorar, o -1 para salir: "); scanf("%d",&tecla); printf("%d\n",tecla); - if ( tecla!=0 &&((no_esta(tecla, nodo->hijos, nodo->cant_claves+1) == -1) || (nodo->nivel==0)) ){ + if (tecla == 0){ + num_nodo = 0; + continue; + } + if ( tecla == nodo->hijos[nodo->cant_claves] && nodo->nivel == 0){ + num_nodo = nodo->hijos[nodo->cant_claves]; + continue; + } + if ( (no_esta(tecla, nodo->hijos, nodo->cant_claves+1) == -1)) { num_nodo = num_nodo_ant; printf("El nodo no existe o es nivel cero\n"); } @@ -71,13 +79,14 @@ int main (int argc,char* argv[]) CLAVE clave; char *texto, *texto2; char *r; + int tecla; EMUFS *emu; int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6; EMUFS_REG_SIZE len, size; int err=0, i; INDICE_DATO dato; B_PLUS_KEYBUCKET *v; - + INDEX_DAT query; texto = "PARTE COSNSTANTE, clave ="; emu = emufs_crear("test",T4,512,0); @@ -209,6 +218,15 @@ for (i=0; icant_keys; i++) printf("v[%d] = %d\n", i, v->claves[i]); ver_arbol(emu); + +printf("Buscar el POST de:\n"); +scanf("%d", &tecla); +clave.i_clave = tecla; +PERR("BUSCANDO"); +b_plus_buscar_prepost(emu->indices, clave, 0, &query, 1); + +printf("el post de %d, es %d\n", clave, query.clave); + emufs_destruir(emu); return 0; diff --git a/emufs/tipo3_bplus_main.c b/emufs/tipo3_bplus_main.c index 74f1066..f32a7da 100644 --- a/emufs/tipo3_bplus_main.c +++ b/emufs/tipo3_bplus_main.c @@ -33,7 +33,15 @@ void ver_arbol(EMUFS *emu) printf("Ingrese proximo nodo a explorar, o -1 para salir: "); scanf("%d",&tecla); printf("%d\n",tecla); - if ( tecla!=0 &&((no_esta(tecla, nodo->hijos, nodo->cant_claves+1) == -1) || (nodo->nivel==0)) ){ + if (tecla == 0){ + num_nodo = 0; + continue; + } + if ( tecla == nodo->hijos[nodo->cant_claves] && nodo->nivel == 0){ + num_nodo = nodo->hijos[nodo->cant_claves]; + continue; + } + if ( (no_esta(tecla, nodo->hijos, nodo->cant_claves+1) == -1)) { num_nodo = num_nodo_ant; printf("El nodo no existe o es nivel cero\n"); }