diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-07-24 18:46:39 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-07-24 18:46:58 +0200 |
| commit | 83edb77d74bb339f3e1324a51039c78ac503db90 (patch) | |
| tree | 1e69b9330430438fa499f94e864dcfb4d83ea007 /c13/ex05 | |
| parent | 5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (diff) | |
| download | piscine-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.c | 20 | ||||
| -rw-r--r-- | c13/ex05/ft_btree.h | 8 |
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 |
