diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2021-09-16 18:55:43 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2021-09-16 18:55:43 +0000 |
| commit | 9802644a3c6f7d4de289b425eb5ac76a07a0f523 (patch) | |
| tree | 361ad24ffbe96586ea230c73f066f978e7f80e12 /src/main.c | |
| parent | 04783746a8160b2bdacbc5eda065a56293fc2248 (diff) | |
Add template for btrees
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..7e460c8 --- /dev/null +++ b/src/main.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "btree.h" + +enum gender { + gender_male, + gender_female, + gender_other +}; + +struct userdat { + const char *name; + unsigned short age; + enum gender gender; +}; + +int userdat_cmp(const void *a, const void *b) { + const struct userdat *ua = a; + const struct userdat *ub = b; + + if (ua->age == ub->age) { + if (ua->gender > ub->gender) { return BTREE_CMP_GT; } + else if (ua->gender < ub->gender) { return BTREE_CMP_LT; } + { return BTREE_CMP_EQ; } + + } else if (ua->age > ub->age) { + return BTREE_CMP_GT; + } return BTREE_CMP_LT; +} + +int main() { + struct btree *tree = btree_new(sizeof(struct userdat), + BTREE_DEGREE_DEFAULT, + &userdat_cmp); + + btree_free(tree); + + return 0; +} |
