From 83edb77d74bb339f3e1324a51039c78ac503db90 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 24 Jul 2019 18:46:39 +0200 Subject: bsq and c13 passed --- c13/ex05/btree_search_item.c | 20 ++++++++++++++++++-- c13/ex05/ft_btree.h | 8 ++++---- 2 files changed, 22 insertions(+), 6 deletions(-) (limited to 'c13/ex05') 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 -- cgit