diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-07-24 08:02:55 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-07-24 08:02:55 +0200 |
| commit | 5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (patch) | |
| tree | 5604e51c0008088f25b2f5dfb9143a852dd079dd /c13 | |
| parent | 23ad79e8b41c25bb4992d103d29a17612a52e351 (diff) | |
| download | piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.tar.gz piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.tar.bz2 piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.zip | |
c12 passed, c13 start
Diffstat (limited to 'c13')
| -rw-r--r-- | c13/ex00/btree_create_node.c | 27 | ||||
| -rw-r--r-- | c13/ex00/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex01/btree_apply_prefix.c | 22 | ||||
| -rw-r--r-- | c13/ex01/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex02/btree_apply_infix.c | 22 | ||||
| -rw-r--r-- | c13/ex02/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex03/btree_apply_suffix.c | 22 | ||||
| -rw-r--r-- | c13/ex03/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex04/btree_insert_data.c | 25 | ||||
| -rw-r--r-- | c13/ex04/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex05/btree_search_item.c | 16 | ||||
| -rw-r--r-- | c13/ex05/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex06/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ex07/ft_btree.h | 23 | ||||
| -rw-r--r-- | c13/ft_btree.h | 5 |
15 files changed, 322 insertions, 1 deletions
diff --git a/c13/ex00/btree_create_node.c b/c13/ex00/btree_create_node.c index e69de29..d87b958 100644 --- a/c13/ex00/btree_create_node.c +++ b/c13/ex00/btree_create_node.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_create_node.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/21 18:25:39 by cacharle #+# #+# */ +/* Updated: 2019/07/23 20:40:33 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "ft_btree.h" + +t_btree *btree_create_node(void *item) +{ + t_btree *node; + + node = (t_btree*)malloc(sizeof(t_btree)); + if (node == NULL) + return (NULL); + node->left = 0; + node->right = 0; + node->item = item; + return (node); +} diff --git a/c13/ex00/ft_btree.h b/c13/ex00/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex00/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex01/btree_apply_prefix.c b/c13/ex01/btree_apply_prefix.c index e69de29..530d698 100644 --- a/c13/ex01/btree_apply_prefix.c +++ b/c13/ex01/btree_apply_prefix.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_apply_infix.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/21 18:28:07 by cacharle #+# #+# */ +/* Updated: 2019/07/21 18:37:15 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_btree.h" + +void btree_apply_prefix(t_btree *root, void (*applyf)(void *)) +{ + if (root == NULL) + return ; + (*applyf)(root->item); + btree_apply_prefix(root->left); + btree_apply_prefix(root->right); +} diff --git a/c13/ex01/ft_btree.h b/c13/ex01/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex01/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex02/btree_apply_infix.c b/c13/ex02/btree_apply_infix.c index e69de29..3ff3278 100644 --- a/c13/ex02/btree_apply_infix.c +++ b/c13/ex02/btree_apply_infix.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_apply_infix.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/21 18:28:07 by cacharle #+# #+# */ +/* Updated: 2019/07/23 21:09:53 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_btree.h" + +void btree_apply_infix(t_btree *root, void (*applyf)(void *)) +{ + if (root == NULL) + return ; + btree_apply_infix(root->left); + (*applyf)(root->item); + btree_apply_infix(root->right); +} diff --git a/c13/ex02/ft_btree.h b/c13/ex02/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex02/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex03/btree_apply_suffix.c b/c13/ex03/btree_apply_suffix.c index e69de29..6d5c3b2 100644 --- a/c13/ex03/btree_apply_suffix.c +++ b/c13/ex03/btree_apply_suffix.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_apply_suffix.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/21 18:37:33 by cacharle #+# #+# */ +/* Updated: 2019/07/21 18:38:10 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_btree.h" + +void btree_apply_suffix(t_btree *root, void (*applyf)(void *)) +{ + if (root == NULL) + return ; + btree_apply_suffix(root->left); + btree_apply_suffix(root->right); + (*applyf)(root->item); +} diff --git a/c13/ex03/ft_btree.h b/c13/ex03/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex03/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex04/btree_insert_data.c b/c13/ex04/btree_insert_data.c index e69de29..0999cab 100644 --- a/c13/ex04/btree_insert_data.c +++ b/c13/ex04/btree_insert_data.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_insert_data.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/21 18:43:18 by cacharle #+# #+# */ +/* Updated: 2019/07/23 20:49:48 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <stdlib.h> +#include "ft_btree.h" + +// this is half shit +void btree_insert_data(t_btree **root, void *item, int (*cmpf)(void *, void *)) +{ + if (*root == NULL) + *root = btree_create_elem(item); + if ((*cmpf)((*root)->item, item) < 0) + btree_insert_root(&(*root)->left, item, cmpf); + else if ((*cmpf)((*root)->item, item) > 0) + btree_insert_root(&(*root)->right, item, cmpf); +} diff --git a/c13/ex04/ft_btree.h b/c13/ex04/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex04/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex05/btree_search_item.c b/c13/ex05/btree_search_item.c index e69de29..b5d7114 100644 --- a/c13/ex05/btree_search_item.c +++ b/c13/ex05/btree_search_item.c @@ -0,0 +1,16 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree_search_item.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +void *btree_search_item(t_btree *root, void *data_ref, int (*cmpf)(void *, void *)) +{ + +} diff --git a/c13/ex05/ft_btree.h b/c13/ex05/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex05/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex06/ft_btree.h b/c13/ex06/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex06/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ex07/ft_btree.h b/c13/ex07/ft_btree.h new file mode 100644 index 0000000..3af177e --- /dev/null +++ b/c13/ex07/ft_btree.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* 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 */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_BTREE_H +# define FT_BTREE_H + +typedef struct s_btree +{ + struct s_btree *left; + struct s_btree *right; + void *item; +} t_btree; + +#endif diff --git a/c13/ft_btree.h b/c13/ft_btree.h index a05beeb..3af177e 100644 --- a/c13/ft_btree.h +++ b/c13/ft_btree.h @@ -6,11 +6,12 @@ /* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/17 19:29:12 by cacharle #+# #+# */ -/* Updated: 2019/07/17 19:29:37 by cacharle ### ########.fr */ +/* Updated: 2019/07/21 18:19:33 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef FT_BTREE_H +# define FT_BTREE_H typedef struct s_btree { @@ -18,3 +19,5 @@ typedef struct s_btree struct s_btree *right; void *item; } t_btree; + +#endif |
