From 4b306fe831dd5ff91ad0c750983b36d7fd568264 Mon Sep 17 00:00:00 2001 From: jf-home Date: Mon, 24 Jun 2024 01:32:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8D=A2=E4=B8=80=E7=BB=84=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=8F=91=E7=8E=B0=E8=BF=98=E6=98=AF?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E9=97=AE=E9=A2=98=E3=80=82=E6=98=8E=E5=A4=A9?= =?UTF-8?q?=E6=8E=A5=E7=9D=80=E6=B5=8B=E8=AF=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tree.c | 13 ++++++++----- test/tree_test.c | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/tree.c b/src/tree.c index 45d9bc6..3b1cadd 100644 --- a/src/tree.c +++ b/src/tree.c @@ -1480,10 +1480,11 @@ static struct _tree_node* tree_trun_left_then_right(struct _tree* self, struct _ { assert(self != NULL); assert(root != NULL); - assert(root->left != NULL); struct _tree_node* node = root->left; - - tree_turn_left(self, root->left); + if(node != NULL) + { + tree_turn_left(self, node); + } node = tree_turn_right(self, root); return node; } @@ -1492,9 +1493,11 @@ static struct _tree_node* tree_trun_right_then_left(struct _tree* self, struct _ { assert(self != NULL); assert(root != NULL); - assert(root->right != NULL); struct _tree_node* node = root->right; - tree_turn_right(self, root->right); + if(node != NULL) + { + tree_turn_right(self, node); + } node = tree_turn_left(self, root); return node; } diff --git a/test/tree_test.c b/test/tree_test.c index 8328878..27f772c 100644 --- a/test/tree_test.c +++ b/test/tree_test.c @@ -279,8 +279,8 @@ void tree_test(void) void test_tree_num(void) { uint32_t i = 0; - int data[] = { 1,2,3,4,5,6}; - // int data[] = { 5,2,3,1,7,8,6 }; + // int data[] = { 1,2,3,4,5,6}; + int data[] = { 5,2,3,1,7,8,6 }; int temp = 0; uint32_t len = sizeof(data) / sizeof(data[0]);