]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/b_plus.h
0b6d035873801ec5aab1e62c10afcd02e64e401e
[z.facultad/75.06/emufs.git] / emufs / b_plus.h
1 #ifndef _B_PLUS_H_
2 #define _B_PLUS_H_
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include "emufs.h"
6 typedef union _clave_b_plus {
7         int num;
8         /*fixme*/
9 }CLAVE_B_PLUS;
10
11 typedef struct nodo_b_plus {
12         int nivel; /** Nivel del nodo */
13         int cant; /** Cantidad de items en el nodo */
14         int right  /** Referencia al nodo derecho */
15         int left; /** Referencia al nodo izquierdo */
16         CLAVE_B_PLUS clave; /** Clave de busqueda e insercion */
17 } NODO_B_PLUS;
18
19 typedef struct nodo_b_plus_hoja {
20         int nivel; /** Nivel del nodo */
21         int cant; /** Cantidad de claves en el nodo */
22         int offset; /** Distancia hasta el comiezo de la clave */
23         EMUFS_BLOCK_ID bloque; /** Referencia al bloque */
24         EMUFS_REG_ID id_reg; /** Identificador del registro */
25         EMUFS_FREE free_space; /** Espacio libre del bloque */
26         void *dato; /** Cadena contenedora del dato */
27 } NODO_B_PLUS_HOJA;     
28
29 /** TODO */
30 int b_plus_crear();
31 int b_plus_insertar();
32 int b_plus_eliminar();
33 int b_plus_buscar();
34 int b_plus_destuir();
35
36
37 #endif