From 57de152bcebc7ffb06ecff616ff00d787ee9a495 Mon Sep 17 00:00:00 2001 From: mo khan Date: Sun, 20 Sep 2020 17:41:28 -0600 Subject: refactor: change colouring algorithm --- src/03/rb_tree.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/03/rb_tree.c') diff --git a/src/03/rb_tree.c b/src/03/rb_tree.c index 802791e..b6d0700 100644 --- a/src/03/rb_tree.c +++ b/src/03/rb_tree.c @@ -176,7 +176,7 @@ static void print_tree(RBTree *tree, int level) { printf(" "); if (tree) { - printf("(%d:%c P:%d)\n", tree->value, tree->colour == red ? 'R' : 'B', tree->parent ? tree->parent->value : -1); + printf("(%d%c H:%d)\n", tree->value, tree->colour == red ? 'R' : 'B', rb_tree_height(tree)); if (!tree->left && !tree->right) return; @@ -261,3 +261,10 @@ bool rb_tree_is_valid(RBTree *tree) { return rb_tree_is_valid(tree->left) && rb_tree_is_valid(tree->right); } + +int rb_tree_height(RBTree *tree) { + if (!tree) + return 1; + + return 1 + max(rb_tree_height(tree->left), rb_tree_height(tree->right)); +} -- cgit v1.2.3