aboutsummaryrefslogtreecommitdiff
path: root/c13
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-24 08:02:55 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-24 08:02:55 +0200
commit5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (patch)
tree5604e51c0008088f25b2f5dfb9143a852dd079dd /c13
parent23ad79e8b41c25bb4992d103d29a17612a52e351 (diff)
downloadpiscine-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.c27
-rw-r--r--c13/ex00/ft_btree.h23
-rw-r--r--c13/ex01/btree_apply_prefix.c22
-rw-r--r--c13/ex01/ft_btree.h23
-rw-r--r--c13/ex02/btree_apply_infix.c22
-rw-r--r--c13/ex02/ft_btree.h23
-rw-r--r--c13/ex03/btree_apply_suffix.c22
-rw-r--r--c13/ex03/ft_btree.h23
-rw-r--r--c13/ex04/btree_insert_data.c25
-rw-r--r--c13/ex04/ft_btree.h23
-rw-r--r--c13/ex05/btree_search_item.c16
-rw-r--r--c13/ex05/ft_btree.h23
-rw-r--r--c13/ex06/ft_btree.h23
-rw-r--r--c13/ex07/ft_btree.h23
-rw-r--r--c13/ft_btree.h5
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