]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
Agrego un atributo mas a INDICE para poder implementar el obtener siguiente en el B+
authorAlan Kennedy <kennedya@3dgames.com.ar>
Sun, 30 May 2004 07:36:31 +0000 (07:36 +0000)
committerAlan Kennedy <kennedya@3dgames.com.ar>
Sun, 30 May 2004 07:36:31 +0000 (07:36 +0000)
emufs/indices.c
emufs/indices.h

index dfd0e31ff64a0280348dc41ab5b35a3042069321..aab487a4e77bf916017d65e6052351f3574e1cbd 100644 (file)
@@ -53,6 +53,7 @@ INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_FUNCION funcion, IND
        tmp->sig = NULL;
        tmp->size_claves = 0;
        tmp->size_hijos = 0;
+       tmp->keybucket = NULL;
 
        fprintf(stderr, "TIPO ARBOL= %d\n", tmp->tipo);
        switch (tmp->tipo) {
index 543e879ffcb3e2d20060ec2f7ae1a16e54eccf12..d85f56e2eb1a5b4d6ecaedfd4ee626611c50c670 100644 (file)
@@ -48,6 +48,13 @@ typedef union _data_ {
        int i_clave;
 } CLAVE;
 
+/** Bucket de keys en bloque para B+ */
+typedef struct _keybucket_ {
+       int cant_keys;
+       int current_key;
+       CLAVE *claves;
+} B_PLUS_KEYBUCKET;
+
 /** Manejo de Indices independiente */
 typedef struct _indices_h_ {
        INDICE_TIPO tipo;             /**< Tipo de indice */
@@ -60,6 +67,7 @@ typedef struct _indices_h_ {
        /******NICO********/
        unsigned int size_claves;
        unsigned int size_hijos;
+       B_PLUS_KEYBUCKET *keybucket; /**< Usado por B+ para implementar el obtener_sig_clave. Posee keys de un bloque */
        /******NICO********/
        /** Agrega la clave k de posicion location en el 
         * indice de forma ordenada