diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-29 19:02:12 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-29 19:02:12 -0600 |
| commit | 1f952f1a103c7d5c40e1ed4e869714d86ac720ac (patch) | |
| tree | e2cd154102fbde0295d8e57018d7230a726bac25 /src/03 | |
| parent | ab994a83dbed26279aa4b4d28e15de111a514b0d (diff) | |
refactor: extract convenience constructor
Diffstat (limited to 'src/03')
| -rw-r--r-- | src/03/rb_tree.c | 14 |
1 files changed, 8 insertions, 6 deletions
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); |
