diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-30 13:20:56 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-30 13:20:56 -0600 |
| commit | 00b9cfeabb70cd3db932273ddf96f705844fdf06 (patch) | |
| tree | a96a01b21b402f5b73509a21de979cb7a5cb3e06 /src/03/avl_tree.c | |
| parent | fb0f63d6a8a87bcfea9d78e67ab9070086871354 (diff) | |
feat: add function to convert avl tree to rb tree
Diffstat (limited to 'src/03/avl_tree.c')
| -rw-r--r-- | src/03/avl_tree.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/03/avl_tree.c b/src/03/avl_tree.c index bafe319..79205e3 100644 --- a/src/03/avl_tree.c +++ b/src/03/avl_tree.c @@ -168,7 +168,7 @@ static void print_tree(AVLTree *tree, int level) { printf(" "); if (tree) { - printf("(%d)\n", tree->value); + printf("(%d:%d)\n", tree->value, tree->height); if (!tree->left && !tree->right) return; @@ -180,6 +180,16 @@ static void print_tree(AVLTree *tree, int level) { } } +RBTree *avl_tree_to_rb_tree(AVLTree *tree) { + if (!tree) + return NULL; + + RBTree *rb_tree = rb_tree_initialize(tree->value); + rb_tree->left = avl_tree_to_rb_tree(tree->left); + rb_tree->right = avl_tree_to_rb_tree(tree->right); + return rb_tree; +} + void avl_tree_inspect(AVLTree *tree) { print_tree(tree, 0); } |
