#include #include #include /* Hardcoded BTree order */ #define BT_ORDER 3 /* Btree is an index of this structure */ struct Data { int id; char name[20]; }; struct BTree_node { bool is_leaf; /* Is this a leaf block? */ int num_recs; int key_idx[BT_ORDER]; /* Points to next level when node or to data when leaf */ void *ptrs[BT_ORDER]; }; struct BTree_head { struct BTree_node *root; /* root pointer */ unsigned int height; /* How many levels? */ unsigned int order; /* BTree order */ unsigned int num_recs; /* num of entrys in the tree */ }; struct BTree_head * init_head(void); void destroy_head(struct BTree_head *head); /* * BTree Operations: * * All operations Return 0 for success, non zero otherwise * */ int btree_add(struct Data* item); int btree_delete(void); int btree_search(void); int btree_dump(void); void usage(void);