diff options
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); } |
