aboutsummaryrefslogtreecommitdiff
path: root/c13/ex06
diff options
context:
space:
mode:
Diffstat (limited to 'c13/ex06')
-rw-r--r--c13/ex06/btree_level_count.c33
-rw-r--r--c13/ex06/ft_btree.h8
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