From 1f952f1a103c7d5c40e1ed4e869714d86ac720ac Mon Sep 17 00:00:00 2001 From: mo khan Date: Sat, 29 Aug 2020 19:02:12 -0600 Subject: refactor: extract convenience constructor --- src/03/rb_tree.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/03/rb_tree.c b/src/03/rb_tree.c index b28d852..5bb1017 100644 --- a/src/03/rb_tree.c +++ b/src/03/rb_tree.c @@ -155,9 +155,9 @@ static void print_tree(RBTree *tree, int level) { } } -RBTree *rb_tree_initialize(int value) { +RBTree *rb_tree_initialize_with(int value, enum Colour colour) { RBTree *tree = malloc(sizeof(RBTree)); - tree->colour = black; + tree->colour = colour; tree->left = NULL; tree->parent = NULL; tree->right = NULL; @@ -165,13 +165,15 @@ RBTree *rb_tree_initialize(int value) { return tree; } -RBTree *rb_tree_insert(RBTree *tree, int value) { - RBTree *node = rb_tree_initialize(value); +RBTree *rb_tree_initialize(int value) { + return rb_tree_initialize_with(value, black); +} +RBTree *rb_tree_insert(RBTree *tree, int value) { if (tree == NULL) - return node; + return rb_tree_initialize(value); - node->colour = red; + RBTree *node = rb_tree_initialize_with(value, red); insert(tree, node); repair_from(node); return root_of(node); -- cgit v1.2.3