From 590a50d9e7122dec99978a034de02ef257061488 Mon Sep 17 00:00:00 2001 From: wjf-hs Date: Tue, 2 Jul 2024 15:03:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E9=BB=91=E6=A0=91=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tree.c | 6 +++--- test/test_tree.c | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tree.c b/src/tree.c index 7ea77aa..ee7073d 100644 --- a/src/tree.c +++ b/src/tree.c @@ -1339,7 +1339,7 @@ bool tree_rb_delete_fix(struct _tree* self, struct _tree_node* node) } else { - if(father->color = RBT_BLACK) + if(father->color == RBT_BLACK) { // case 4 // father is black, brother has no children @@ -1388,7 +1388,7 @@ bool tree_rb_delete_fix(struct _tree* self, struct _tree_node* node) } else { - if(father->color = RBT_BLACK) + if(father->color == RBT_BLACK) { // case4 brother->color = RBT_RED; @@ -1406,7 +1406,7 @@ bool tree_rb_delete_fix(struct _tree* self, struct _tree_node* node) if(tmp != NULL && tmp->parent == NULL) { - self->_root = node; + self->_root = tmp; } } diff --git a/test/test_tree.c b/test/test_tree.c index b165529..42f676d 100644 --- a/test/test_tree.c +++ b/test/test_tree.c @@ -155,6 +155,10 @@ static bool tree_rb_check_color(struct _tree *self, struct _tree_node* root, int static bool tree_rb_check(struct _tree* self) { assert(self != NULL); + if(self->_root == NULL) + { + return true; + } if(self->_root->color != RBT_BLACK) {