diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2023-03-08 10:15:21 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2023-03-08 10:15:21 +0000 |
| commit | 5f2693c2cebcd530c106c463151cb3294ed9847e (patch) | |
| tree | c01dd89302da8777424299c7c3a6d06e192c75d3 /src | |
| parent | eb29ccf87462e51b38e4d5ab73bcc54f09ac326c (diff) | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/btree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/btree.c b/src/btree.c index 01f1e87..ee87b60 100644 --- a/src/btree.c +++ b/src/btree.c @@ -638,6 +638,7 @@ int btree_delete(struct btree *btree, void *elem) { struct node *newroot = btree->root; int res = node_delete(btree->root, elem, btree->cmp, btree->degree, btree->elem_size, btree->alloc, btree->dealloc); if (newroot->n == 0) { + if (node_leaf(newroot)) return res; /* shrink the tree */ struct node *newroot_p = newroot->children[0]; btree->dealloc(newroot); @@ -683,6 +684,7 @@ void node_print(struct node *root, const size_t elem_size, const int indent, voi void btree_print(struct btree *btree, void (*print_elem)(const void*)) { printf("BTRee: degree:%ld\n", btree->degree); + if (btree->root == NULL) return; node_print(btree->root, btree->elem_size, 0, print_elem); } @@ -752,7 +754,7 @@ struct btree_iter_t* btree_iter_t_new(struct btree *tree) { iter = (struct btree_iter_t*)tree->alloc(sizeof(struct btree_iter_t)); - if (tree != NULL) { + if (iter != NULL) { iter->head = 0; memset(iter->stack, 0, 512 * sizeof(struct node*)); |
