summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2021-11-16 08:58:32 +0000
committer0scar <qgt268@alumni.ku.dk>2021-11-16 08:58:32 +0000
commit1b02b0c6d71901c1803dde4db1eac599ea5a53f3 (patch)
tree6127d0d6ca4a472225951446ae86bc62db15003e /src
parent710f9c111ddd4c6ffe338dd9a668374ee431a74c (diff)
Update example
Diffstat (limited to 'src')
-rw-r--r--src/main.c47
1 files changed, 38 insertions, 9 deletions
diff --git a/src/main.c b/src/main.c
index ef0561a..4588b76 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,10 +24,7 @@ int userdat_cmp(const void *a, const void *b) {
const struct userdat_map *ua = a;
const struct userdat_map *ub = b;
- if (ua->id == ub->id) return BTREE_CMP_EQ;
- else if (ua->id < ub->id) return BTREE_CMP_LT;
-
- return BTREE_CMP_GT;
+ return ua->id - ub->id;
}
void userprint(const void *a) {
@@ -80,7 +77,7 @@ int main() {
USER( 14, np, n, 71, gender_male, "Luke skywalker");
tree = btree_new(sizeof(struct userdat_map),
- 2, /*BTREE_DEGREE_DEFAULT / 2,*/
+ 6, /*BTREE_DEGREE_DEFAULT / 2,*/
&userdat_cmp);
btree_insert((struct btree*)tree, ap);
@@ -89,8 +86,10 @@ int main() {
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);
@@ -98,11 +97,41 @@ int main() {
btree_insert((struct btree*)tree, mp);
btree_insert((struct btree*)tree, np);
- userfind(tree, ap);
- userfind(tree, ep);
- userfind(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);
- printf("Tree:\n");
+ 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);