X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/a499b030d1840a0714721695cd6fcf54bc7dbb68..e8fa2ccccf10bdfcff1aedbaf919f3bc823f1ecf:/emufs/indice_b.h?ds=sidebyside diff --git a/emufs/indice_b.h b/emufs/indice_b.h index f1f6714..7093de2 100644 --- a/emufs/indice_b.h +++ b/emufs/indice_b.h @@ -6,6 +6,7 @@ #include #include +#include "common.h" #include "indices.h" typedef struct _b_nodo_header_ { @@ -20,25 +21,27 @@ typedef struct _b_nodo_header_ { } B_NodoHeader; typedef struct _b_nodo_entry_ { - /* FIXME usar tipo CLAVE */ CLAVE clave; /* Si el nivel del nodo == 0, quiere decir que es el * bloque del archivo de datos donde esta el registro. * Si el nivel != 0, es el siguiente bloque dentro * del archivo de indice donde buscar */ - long ubicacion; + INDICE_DATO dato; + /* El ID de la hoja de depliega a la derecha */ + int hijo_derecho; } B_NodoEntry; /* Crea un arbol */ void emufs_indice_b_crear(INDICE *idx); /* Inserta un par clave-ubicacion */ -int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, int ubicacion); +int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato); /* Busca una clave, retorna ubicacion o -1 si no existe */ -int emufs_indice_b_buscar(INDICE *idx, CLAVE clave); +INDICE_DATO emufs_indice_b_buscar(INDICE *idx, CLAVE clave); +INDICE_DATO *emufs_indice_b_buscar_muchos(INDICE *idx, CLAVE clave, int *cant); #endif