/** Arbol B+ */
#include "b_plus.h"
-#define INDEXSPECS INDICE
+
/**#*#*#*#*#**#*#*#*#*#* Private prototypes*#*#*#*#*#**#*#*#*#*#**#*#*#*/
-/* numerando los bloques */
int b_plus_grabar_nodo(INDEXSPECS *idx, NODO_B_PLUS *nodo, int num_node);
-/*NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num_node);*/
+NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num_node);
NODO_B_PLUS *b_plus_crearnodo(INDEXSPECS *idx);
int b_plus_destruir_nodo(NODO_B_PLUS *nodo);
-/*int b_plus_insertar_clave(INDEXSPECS *idx, INDEX_DAT *query);*/
int b_plus_split_child(INDEXSPECS *idx, int numparent, NODO_B_PLUS *parent, int ithchild, NODO_B_PLUS *fullnode);
int b_plus_insert_nonfull(INDEXSPECS *idx, NODO_B_PLUS *nodo, int num_nodo, INDEX_DAT *query);
int b_plus_insertar(INDEXSPECS *idx, INDEX_DAT *query);
/**#*#*#*#*#**#*#*#*#*#*FIN PROTOTYPES*#*#*#*#*#**#*#*#*#*#**#*#*#*#*#*/
/** Crea un nuevo nodo y lo inicializa */
-NODO_B_PLUS *b_plus_crearnodo(INDEXSPECS *idx) {
+NODO_B_PLUS *b_plus_crearnodo(INDEX *idx) {
NODO_B_PLUS *nodo = (NODO_B_PLUS*)malloc(sizeof(NODO_B_PLUS));
if (nodo == NULL) return NULL;
* return -1 - No hay clave, inserto clave de nuevo bloques
* return 1 - Hubo falla de lectura de un nodo, Abortar
*/
-int emufs_b_plus_get_bloque(INDEXSPECS *idx, INDEX_DAT *query, int num_node) {
+int emufs_b_plus_get_bloque(INDEX *idx, INDEX_DAT *query, int num_node) {
NODO_B_PLUS *nodo;
nodo = b_plus_leer_nodo(idx,num_node);
}
}
-NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num_node) {
+NODO_B_PLUS *b_plus_leer_nodo(INDEX *idx, int num_node) {
/*int i = 0;*/
FILE *fp;
}
-int b_plus_grabar_nodo(INDEXSPECS *idx, NODO_B_PLUS *nodo, int num_node)
+int b_plus_grabar_nodo(INDEX *idx, NODO_B_PLUS *nodo, int num_node)
{
FILE *fp;
return 0;
}
-int b_plus_split_child(INDEXSPECS *idx, int numparent, NODO_B_PLUS *parent, int ithchild, NODO_B_PLUS *fullnode)
+int b_plus_split_child(INDEX *idx, int numparent, NODO_B_PLUS *parent, int ithchild, NODO_B_PLUS *fullnode)
{
/* locals */
int minclaves = ceil(idx->size_hijos/sizeof(int)/2)-1;
}
-int b_plus_insert_nonfull(INDEXSPECS *idx, NODO_B_PLUS *nodo, int num_nodo, INDEX_DAT *query)
+int b_plus_insert_nonfull(INDEX *idx, NODO_B_PLUS *nodo, int num_nodo, INDEX_DAT *query)
{
int i, num_nodo_hijo;
NODO_B_PLUS *hijo;
return 0;
}
-int emufs_b_plus_insertar(INDEXSPECS *idx, INDEX_DAT *query)
+int emufs_b_plus_insertar(INDEX *idx, INDEX_DAT *query)
{
NODO_B_PLUS *raiz;
return 0;
}
-int b_plus_get_num_nodo(INDEXSPECS *idx)
+int b_plus_get_num_nodo(INDEX *idx)
{
FILE *fp;
int num;
#include <math.h>\r
\r
#define SIZE_B_PLUS_HEADER (sizeof(int)*2)\r
-#define INDEXSPECS INDICE\r
-/** Estructura que define un nodo B+. Para los nodos hojas, el ultimo valor de hijo, serĂ¡ el nro\r
- * de nodo con el que se encadena el actual. (Lista de nodos a nivel hoja. Sequence Set).\r
- */\r
-/* \r
-typedef struct _indexspecs_ {\r
- unsigned int tam_bloque;\r
- unsigned int size_claves;\r
- unsigned int size_hijos;\r
- char *filename;\r
-} INDEXSPECS;\r
-*/\r
+\r
typedef struct _index_dat_ {\r
EMUFS_BLOCK_ID num_bloque;\r
CLAVE clave;\r
} INDEX_DAT;\r
\r
+/** Estructura que define un nodo B+. Para los nodos hojas, el ultimo valor de hijo, serĂ¡ el nro\r
+ * de nodo con el que se encadena el actual. (Lista de nodos a nivel hoja. Sequence Set).\r
+ */\r
typedef struct nodo_b_plus {\r
int nivel; /** Nivel del nodo */\r
int cant_claves; /** Cantidad de claves en el nodo */\r
int *hijos; /** Para nodo interno, ref nodos sucesores. Nodo hoja, ref a nro bloque en .dat */\r
} NODO_B_PLUS;\r
\r
-\r
/** TODO */\r
-int emufs_b_plus_crear(INDEXSPECS *idx);\r
-int emufs_b_plus_get_bloque(INDEXSPECS *idx, INDEX_DAT *query, int num_node);\r
-int emufs_b_plus_insertar(INDEXSPECS *idx, INDEX_DAT *query);\r
+int emufs_b_plus_crear(INDEX *idx);\r
+int emufs_b_plus_get_bloque(INDEX *idx, INDEX_DAT *query, int num_node);\r
+int emufs_b_plus_insertar(INDEX *idx, INDEX_DAT *query);\r
int emufs_b_plus_actualizar_nodo(INDEX_DAT *dataset);\r
int emufs_b_plus_buscar();\r
int emufs_b_plus_destuir();\r
-NODO_B_PLUS *b_plus_leer_nodo(INDEXSPECS *idx, int num);\r
+NODO_B_PLUS *b_plus_leer_nodo(INDEX *idx, int num);\r
\r
#endif