aboutsummaryrefslogtreecommitdiff
path: root/c13/ex05
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-24 18:46:39 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-24 18:46:58 +0200
commit83edb77d74bb339f3e1324a51039c78ac503db90 (patch)
tree1e69b9330430438fa499f94e864dcfb4d83ea007 /c13/ex05
parent5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (diff)
downloadpiscine-83edb77d74bb339f3e1324a51039c78ac503db90.tar.gz
piscine-83edb77d74bb339f3e1324a51039c78ac503db90.tar.bz2
piscine-83edb77d74bb339f3e1324a51039c78ac503db90.zip
bsq and c13 passed
Diffstat (limited to 'c13/ex05')
-rw-r--r--c13/ex05/btree_search_item.c20
-rw-r--r--c13/ex05/ft_btree.h8
2 files changed, 22 insertions, 6 deletions
diff --git a/c13/ex05/btree_search_item.c b/c13/ex05/btree_search_item.c
index b5d7114..a714e0c 100644
--- a/c13/ex05/btree_search_item.c
+++ b/c13/ex05/btree_search_item.c
@@ -6,11 +6,27 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/23 20:49:54 by cacharle #+# #+# */
-/* Updated: 2019/07/23 21:09:10 by cacharle ### ########.fr */
+/* Updated: 2019/07/24 14:15:46 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-void *btree_search_item(t_btree *root, void *data_ref, int (*cmpf)(void *, void *))
+#include <stdlib.h>
+#include "ft_btree.h"
+
+void *btree_search_item(t_btree *root, void *data_ref,
+ int (*cmpf)(void *, void *))
{
+ void *tmp;
+ if (root == NULL)
+ return (NULL);
+ tmp = btree_search_item(root->left, data_ref, cmpf);
+ if (tmp != NULL)
+ return (tmp);
+ if ((*cmpf)(root->item, data_ref) == 0)
+ return (root->item);
+ tmp = btree_search_item(root->right, data_ref, cmpf);
+ if (tmp != NULL)
+ return (tmp);
+ return (NULL);
}
diff --git a/c13/ex05/ft_btree.h b/c13/ex05/ft_btree.h
index 3af177e..61ef7b6 100644
--- a/c13/ex05/ft_btree.h
+++ b/c13/ex05/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:15:59 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