diff options
Diffstat (limited to 'c13/ex06')
| -rw-r--r-- | c13/ex06/btree_level_count.c | 33 | ||||
| -rw-r--r-- | c13/ex06/ft_btree.h | 8 |
2 files changed, 37 insertions, 4 deletions
diff --git a/c13/ex06/btree_level_count.c b/c13/ex06/btree_level_count.c index e69de29..5f83662 100644 --- a/c13/ex06/btree_level_count.c +++ b/c13/ex06/btree_level_count.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_level_count.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/24 11:51:34 by cacharle #+# #+# */ +/* Updated: 2019/07/24 12:28:45 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "ft_btree.h" + +int btree_level_count(t_btree *root) +{ + int left_level; + int right_level; + + if (root == NULL) + return (0); + left_level = 0; + right_level = 0; + if (root->left != NULL) + left_level = btree_level_count(root->left); + if (root->right != NULL) + right_level = btree_level_count(root->right); + if (left_level >= right_level) + return (1 + left_level); + else + return (1 + right_level); +} diff --git a/c13/ex06/ft_btree.h b/c13/ex06/ft_btree.h index 3af177e..398e060 100644 --- a/c13/ex06/ft_btree.h +++ b/c13/ex06/ft_btree.h @@ -6,7 +6,7 @@ /* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/17 19:29:12 by cacharle #+# #+# */ -/* Updated: 2019/07/21 18:19:33 by cacharle ### ########.fr */ +/* Updated: 2019/07/24 12:16:54 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,9 +15,9 @@ typedef struct s_btree { - struct s_btree *left; - struct s_btree *right; - void *item; + struct s_btree *left; + struct s_btree *right; + void *item; } t_btree; #endif |
