From d98f46ce647846b0aa30b2e16a30fd4e152a1bf5 Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 10 Jul 2025 22:55:07 +0200 Subject: Add new code Signed-off-by: Carlos Maiolino --- BTree/btree.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 BTree/btree.h (limited to 'BTree/btree.h') diff --git a/BTree/btree.h b/BTree/btree.h new file mode 100644 index 0000000..0acdb15 --- /dev/null +++ b/BTree/btree.h @@ -0,0 +1,43 @@ +#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); -- cgit v1.2.3