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/main.c | |
| parent | 5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (diff) | |
| download | piscine-83edb77d74bb339f3e1324a51039c78ac503db90.tar.gz piscine-83edb77d74bb339f3e1324a51039c78ac503db90.tar.bz2 piscine-83edb77d74bb339f3e1324a51039c78ac503db90.zip | |
bsq and c13 passed
Diffstat (limited to 'c13/main.c')
| -rw-r--r-- | c13/main.c | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/c13/main.c b/c13/main.c new file mode 100644 index 0000000..16e7ebb --- /dev/null +++ b/c13/main.c @@ -0,0 +1,90 @@ +#include <stdio.h> +#include "ex00/ft_btree.h" +#include "ex00/btree_create_node.c" +#include "ex01/btree_apply_prefix.c" +#include "ex02/btree_apply_infix.c" +#include "ex03/btree_apply_suffix.c" +#include "ex04/btree_insert_data.c" +#include "ex05/btree_search_item.c" +#include "ex06/btree_level_count.c" + +void f_print(void *d); +int cmp(void *x, void *y); +int equal(void *x, void *y); + +int main() +{ + int a = 1; + int b = 2; + int c = 3; + int d = 4; + int e = 5; + int big = 1000; + int bigger = 10000; + t_btree *t = btree_create_node(&a); + t_btree *l = btree_create_node(&b); + t_btree *r = btree_create_node(&c); + t->left = l; + t->right = r; + + printf("%d %p %p\n", *(int*)t->item, t->left, t->right); + printf("%d %p %p", *(int*)l->item, l->left, l->right); + + printf("\n-----------------\n"); + btree_apply_prefix(t, &f_print); + + printf("\n-----------------\n"); + btree_apply_infix(t, &f_print); + + printf("\n-----------------\n"); + btree_apply_suffix(t, &f_print); + + printf("\n-----------------\n"); + t_btree *sorted = NULL; + btree_insert_data(&sorted, &c, &cmp); + btree_insert_data(&sorted, &a, &cmp); + btree_insert_data(&sorted, &b, &cmp); + btree_insert_data(&sorted, &e, &cmp); + btree_insert_data(&sorted, &d, &cmp); + btree_insert_data(&sorted, &big, &cmp); + btree_insert_data(&sorted, &big, &cmp); + /*btree_insert_data(&sorted, &bigger, &cmp);*/ + btree_apply_prefix(sorted, &f_print); + + printf("\n-----------------\n"); + t_btree *empty = NULL; + t_btree *one = btree_create_node(&a); + printf("%p\n", btree_search_item(empty, &a, &equal)); + printf("%p\n", (int*)btree_search_item(empty, &a, &equal)); + printf("%d\n", *(int*)btree_search_item(sorted, &a, &equal)); + printf("%d\n", *(int*)btree_search_item(sorted, &big, &equal)); + /*printf("%d\n", *(int*)btree_search_item(sorted, &bigger, &equal));*/ + + printf("\n-----------------\n"); + printf("%d\n", btree_level_count(sorted)); + printf("%d\n", btree_level_count(t)); + printf("%d\n", btree_level_count(empty)); + printf("%d\n", btree_level_count(one)); +} + +void f_print(void *d) +{ + printf("%d ", *(int*)d); + fflush(stdout); +} + +int cmp(void *x, void *y) +{ + if (*(int*)x < *(int*)y) + return -1; + if (*(int*)x > *(int*)y) + return 1; + return 0; +} + +int equal(void *x, void *y) +{ + if (*(int*)x == *(int*)y) + return 0; + return 1; +} |
