summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-31 11:56:48 -0600
committermo khan <mo.khan@gmail.com>2020-08-31 11:56:48 -0600
commit29cb2dbe8fbe76e3c3f3e56db4d16dfd0ce05c39 (patch)
tree51371466a9c6f37815b5011719286a4c2f683aa1 /src
parent02f04d08acd1d64d22607e5387766130c5da80e5 (diff)
fix: assign colour based on height
Diffstat (limited to 'src')
-rw-r--r--src/03/avl_tree.c1
-rw-r--r--src/03/avl_tree_test.c8
2 files changed, 5 insertions, 4 deletions
diff --git a/src/03/avl_tree.c b/src/03/avl_tree.c
index 79205e3..1fe5d4c 100644
--- a/src/03/avl_tree.c
+++ b/src/03/avl_tree.c
@@ -185,6 +185,7 @@ RBTree *avl_tree_to_rb_tree(AVLTree *tree) {
return NULL;
RBTree *rb_tree = rb_tree_initialize(tree->value);
+ rb_tree->colour = 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/avl_tree_test.c b/src/03/avl_tree_test.c
index ffe5cfc..3b2e4c3 100644
--- a/src/03/avl_tree_test.c
+++ b/src/03/avl_tree_test.c
@@ -310,11 +310,11 @@ Ensure(delete_returns_a_null_root) {
Ensure(to_rb_tree_returns_a_new_red_black_tree) {
/*
- (20:3) (20:b)
- / \ --> / \
- (15:2) (30:2) (15:r) (30:r)
+ (20:3) (20:r)
+ / \ --> / \
+ (15:2) (30:2) (15:b) (30:b)
/ \ \ / \ \
-(10:1) (17:1) (35:1) (10:b) (17:b) (35:b)
+(10:1) (17:1) (35:1) (10:r) (17:r) (35:r)
*/
AVLTree *tree = NULL;
RBTree *expected = NULL;