From a6c881458ad6b98c7a7e318f86b725f4cc8f5c0b Mon Sep 17 00:00:00 2001 From: Alan Kennedy Date: Sun, 30 May 2004 07:36:31 +0000 Subject: [PATCH] Agrego un atributo mas a INDICE para poder implementar el obtener siguiente en el B+ --- emufs/indices.c | 1 + emufs/indices.h | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/emufs/indices.c b/emufs/indices.c index dfd0e31..aab487a 100644 --- a/emufs/indices.c +++ b/emufs/indices.c @@ -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) { diff --git a/emufs/indices.h b/emufs/indices.h index 543e879..d85f56e 100644 --- a/emufs/indices.h +++ b/emufs/indices.h @@ -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 -- 2.43.0