root/btree/src/btree.h

Revision 72, 0.8 KB (checked in by aqua, 4 years ago)

ok... it works -_-;;;

Line 
1/*
2 * ADT of Btree
3 */
4
5#define BLOCK_SIZE      4096
6#define KEY_SIZE        160
7#define ENTRY_SIZE      (KEY_SIZE+8)
8#define ENTRY_PER_NODE  ((BLOCK_SIZE-16)/ENTRY_SIZE)
9
10/* sizeof(btree_entry) == NODE_SIZE */
11typedef struct {
12        char    key[KEY_SIZE];  /* key */
13        int     value;          /* var */
14        int     child;          /* offset of next child */
15} btree_entry;
16
17/* sizeof(btree_node) < BLOCK_SIZE */
18typedef struct {
19        int     n;              /* number of entries */
20        int     prev_node;      /* offset of previous node */
21        int     next_node;      /* offset of next node */
22        int     child;          /* offset of first child  */
23        btree_entry entry[ENTRY_PER_NODE];
24} btree_node;
25
26typedef struct {
27        int     fd;     /* btree file pointer */
28        int     root;   /* offset of root node */
29        int     depth;  /* depth of tree */
30        int (*compare)( btree_entry* l, btree_entry* r );
31} btree;
32
33//btree* btree_open( char* btree_file );
34void btree_insert( btree* tree, char* key );
Note: See TracBrowser for help on using the browser.