diff --git a/src/tree.c b/src/tree.c index c665392..5543ef4 100644 --- a/src/tree.c +++ b/src/tree.c @@ -1875,8 +1875,6 @@ bool tree_avl_delete(struct _tree* self, void* obj) { return false; } - // debug - self->print_obj(obj); if((node->left != NULL) && (node->right != NULL)) { @@ -2110,7 +2108,7 @@ static struct _tree_node* tree_find_min(struct _tree* self, struct _tree_node* r } return tree_find_min(self, root->left); #else - while(root == NULL) + while(root != NULL) { if(root->left != NULL) { @@ -2118,7 +2116,7 @@ static struct _tree_node* tree_find_min(struct _tree* self, struct _tree_node* r } else { - break; + return root; } } return root; diff --git a/test/test_tree.c b/test/test_tree.c index c63ea3e..953a875 100644 --- a/test/test_tree.c +++ b/test/test_tree.c @@ -340,8 +340,8 @@ void test_tree_num(void) printf("----- left priority -----\n"); tree->order(tree, false); - printf("----- breadth -----\n"); - tree->breadth(tree, tree->_root); + printf("----- preorder -----\n"); + tree->preorder(tree, tree->_root); printf("\n"); for (i = 0; i < len; i++) @@ -350,9 +350,11 @@ void test_tree_num(void) printf("delete = "); tree->print_obj(&temp); + // delete + tree->delete(tree, &temp); + printf("size = %2d : ", tree->size(tree)); - tree->delete(tree, &temp); // printf("----- breadth -----\n"); // tree->breadth(tree, tree->_root);