diff options
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/src/main.c b/src/main.c deleted file mode 100644 index 4588b76..0000000 --- a/src/main.c +++ /dev/null @@ -1,140 +0,0 @@ -#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; -}; - -struct userdat_map { - int id; - struct userdat *user; -}; - -int userdat_cmp(const void *a, const void *b) { - const struct userdat_map *ua = a; - const struct userdat_map *ub = b; - - return ua->id - ub->id; -} - -void userprint(const void *a) { - const struct userdat_map *ua = a; - const struct userdat *u = ua->user; - - printf("[%d] %s, age:%d, %c\n", - ua->id, - u->name, - u->age, - (u->gender == gender_male) ? 'M' : 'F' ); -} - -void userfind(struct btree* tree, struct userdat_map *usr) { - struct userdat_map *retval; - retval = btree_search(tree, usr); - - if (retval != NULL) { - struct userdat *retuser = retval->user; - printf("Query: %s, age:%d, %c\n", - retuser->name, - retuser->age, - (retuser->gender == gender_male) ? 'M' : 'F' ); - } else { - printf("Query: not found\n"); - } -} - -#define USER(_id, varp, var, age, g, name) \ - struct userdat var = {name, age, g};\ - struct userdat_map *varp = malloc(sizeof(struct userdat_map));\ - varp->id=_id;varp->user=&var; - - -int main() { - struct btree *tree; - USER( 1, ap, a, 23, gender_male, "John Doe"); - USER( 2, bp, b, 69, gender_male, "Kim Hot"); - USER( 3, cp, c, 88, gender_male, "Ron Swanson"); - USER( 4, dp, d, 12, gender_male, "Nick"); - USER( 5, ep, e, 77, gender_male, "Jay"); - USER( 6, fp, f, 54, gender_male, "Boris"); - USER( 7, gp, g, 42, gender_male, "Vladimir"); - USER( 8, hp, h, 41, gender_male, "C-not-so-sharp"); - USER( 9, ip, i, 38, gender_male, "Jane Doe"); - USER( 10, jp, j, 32, gender_male, "Thomas pilgaard"); - USER( 11, kp, k, 9, gender_male, "Barrack Obama"); - USER( 12, lp, l, 99, gender_male, "Bin File"); - USER( 13, mp, m, 78, gender_male, "Fiske filletter"); - USER( 14, np, n, 71, gender_male, "Luke skywalker"); - - tree = btree_new(sizeof(struct userdat_map), - 6, /*BTREE_DEGREE_DEFAULT / 2,*/ - &userdat_cmp); - - btree_insert((struct btree*)tree, ap); - btree_insert((struct btree*)tree, bp); - btree_insert((struct btree*)tree, cp); - btree_insert((struct btree*)tree, dp); - btree_insert((struct btree*)tree, ep); - btree_insert((struct btree*)tree, fp); - - btree_insert((struct btree*)tree, gp); - btree_insert((struct btree*)tree, hp); - - btree_insert((struct btree*)tree, ip); - btree_insert((struct btree*)tree, jp); - btree_insert((struct btree*)tree, kp); - btree_insert((struct btree*)tree, lp); - btree_insert((struct btree*)tree, mp); - btree_insert((struct btree*)tree, np); - - /*userfind(tree, ap);*/ - /*userfind(tree, bp);*/ - /*userfind(tree, ep);*/ - /*userfind(tree, np);*/ - btree_print(tree, &userprint); - - printf("Deleting %s\n", cp->user->name); - btree_delete(tree, cp); - - btree_print(tree, &userprint); - - printf("Deleting %s\n", dp->user->name); - btree_delete(tree, dp); - - btree_print(tree, &userprint); - - printf("Deleting [%d] %s\n", dp->id, dp->user->name); - btree_delete(tree, dp); - - printf("Deleting [%d] %s\n", hp->id, hp->user->name); - btree_delete(tree, hp); - - btree_print(tree, &userprint); - - printf("Deleting [%d] %s\n", ip->id, ip->user->name); - btree_delete(tree, ip); - - btree_print(tree, &userprint); - - /* deleting node */ - btree_delete(tree, bp); - btree_print(tree, &userprint); - userfind(tree, bp); - - btree_insert((struct btree*)tree, bp); - btree_print(tree, &userprint); - - btree_free(tree); - - return 0; -} |
