summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-31 12:04:35 -0600
committermo khan <mo.khan@gmail.com>2020-08-31 12:04:35 -0600
commit2e99c5ff1a5a852af3fcdfab209aaca1f304830e (patch)
tree9571ed6e35693f4a648fb1e7f48c7b414e6a2069
parent29cb2dbe8fbe76e3c3f3e56db4d16dfd0ce05c39 (diff)
refactor: delegate to convenience constructor
-rw-r--r--src/03/avl_tree.c3
-rw-r--r--src/03/rb_tree.h1
2 files changed, 2 insertions, 2 deletions
diff --git a/src/03/avl_tree.c b/src/03/avl_tree.c
index 1fe5d4c..8418c78 100644
--- a/src/03/avl_tree.c
+++ b/src/03/avl_tree.c
@@ -184,8 +184,7 @@ RBTree *avl_tree_to_rb_tree(AVLTree *tree) {
if (!tree)
return NULL;
- RBTree *rb_tree = rb_tree_initialize(tree->value);
- rb_tree->colour = tree->height % 2 == 0 ? black : red;
+ RBTree *rb_tree = rb_tree_initialize_with(tree->value, tree->height % 2 == 0 ? black : red);
rb_tree->left = avl_tree_to_rb_tree(tree->left);
rb_tree->right = avl_tree_to_rb_tree(tree->right);
return rb_tree;
diff --git a/src/03/rb_tree.h b/src/03/rb_tree.h
index 984ad59..9d4f0e4 100644
--- a/src/03/rb_tree.h
+++ b/src/03/rb_tree.h
@@ -14,6 +14,7 @@ typedef struct rb_node {
} RBTree;
RBTree *rb_tree_initialize(int value);
+RBTree *rb_tree_initialize_with(int value, enum Colour colour);
RBTree *rb_tree_insert(RBTree *tree, int value);
void rb_tree_inspect(RBTree *tree);
bool rb_equals(RBTree *tree, RBTree *other_tree);