]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/indices.c
rompo todo porque me la banco... a ver si alguien se da cuenta por que se cuelga...
[z.facultad/75.06/emufs.git] / emufs / indices.c
index 33b6f7dbe5443f8ad16d67f0e510e5638d569f94..4e1b7abd4a828d87755a0297b8abd011ab27897c 100644 (file)
@@ -54,7 +54,8 @@ INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, IND
        tmp->size_claves = 0;
        tmp->size_hijos = 0;
 
-       switch (tipo) {
+       fprintf(stderr, "TIPO ARBOL= %d\n", tmp->tipo);
+       switch (tmp->tipo) {
                case IND_B:
                        PERR("Creando indice con Arbol B");
                        emufs_indice_b_crear(tmp);
@@ -69,12 +70,20 @@ INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, IND
                case IND_B_ASC:
                        /* llenar metodos */
                        PERR("Creando indice con Arbol B*");
-                       PERR("AÚN NO IMPLEMENTADO!!!!!!!!");
+                       emufs_indice_b_crear(tmp);
+                       tmp->agregar_entrada = emufs_indice_b_asc_insertar;
+                       tmp->borrar_entrada = emufs_indice_b_borrar;
+                       tmp->existe_entrada = emufs_indice_b_buscar;
+                       tmp->buscar_entradas = emufs_indice_b_buscar_muchos;
+                       tmp->obtener_menor_clave = emufs_indice_b_obtener_menor_clave;
+                       tmp->obtener_mayor_clave = emufs_indice_b_obtener_mayor_clave;
+                       tmp->obtener_sig_clave = emufs_indice_b_obtener_sig_clave;
                        break;
                case IND_B_PLUS:
                        /* llenar metodos */
                        /* hacer que la cantidad de claves quede par o impar, no me acuerdo (SAGAR)!!!*/
                        PERR("Creando indice con Arbol B+");
+                       emufs_b_plus_crear(tmp);
                        tmp->size_claves = (tmp->tam_bloque - SIZE_B_PLUS_HEADER - sizeof(CLAVE))/2;
                        tmp->size_hijos = tmp->size_claves + sizeof(CLAVE);
                        emufs_b_plus_crear(tmp);