From 4902ceeac0e9992f19b27b548f878e7d1194e8f2 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sat, 26 Nov 2016 23:03:17 +0100 Subject: [PATCH] btree fixed and normed, yay --- libft/includes/btree.h | 14 +++++++----- libft/src/btree/btree_print.c | 43 ++++++++++++++++++----------------- libft/src/misc/ft_debug.c | 2 +- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/libft/includes/btree.h b/libft/includes/btree.h index a711616f..153bbf84 100644 --- a/libft/includes/btree.h +++ b/libft/includes/btree.h @@ -25,15 +25,17 @@ struct s_btree struct s_btree *right; }; -enum e_printdata +struct s_printdata { - is_left, - offset, - depth, - left, - right, + int is_left; + int offset; + int depth; + int left; + int right; }; +typedef struct s_printdata t_printdata; + t_btree *btree_create_node(void const *item, size_t content_size); void btree_insert_data( diff --git a/libft/src/btree/btree_print.c b/libft/src/btree/btree_print.c index 395a6a3d..2db652b8 100644 --- a/libft/src/btree/btree_print.c +++ b/libft/src/btree/btree_print.c @@ -12,7 +12,7 @@ #include "btree.h" -static int print_t2(int data[5], char s[20][255], char b[20]) +static int print_t2(t_printdata data, char s[20][255], char b[20]) { int width; int i; @@ -20,29 +20,29 @@ static int print_t2(int data[5], char s[20][255], char b[20]) width = 5; i = -1; while (++i < width) - s[2 * data[depth]][data[offset] + data[left] + i] = b[i]; + s[2 * data.depth][data.offset + data.left + i] = b[i]; i = -1; - if (data[depth] && data[is_left]) + if (data.depth && data.is_left) { - while (++i < width + data[right]) - s[2 * data[depth] - 1] - [data[offset] + data[left] + width / 2 + i] = '-'; - s[2 * data[depth] - 1][data[offset] + data[left] + width / 2] = '+'; - s[2 * data[depth] - 1] - [data[offset] + data[left] + data[right] + 3 * width / 2] = '+'; + while (++i < width + data.right) + s[2 * data.depth - 1] + [data.offset + data.left + width / 2 + i] = '-'; + s[2 * data.depth - 1][data.offset + data.left + width / 2] = '+'; + s[2 * data.depth - 1] + [data.offset + data.left + data.right + 3 * width / 2] = '+'; } - else if (data[depth] && !data[is_left]) + else if (data.depth && !data.is_left) { - while (++i < width + data[left]) - s[2 * data[depth] - 1][data[offset] - width / 2 + i] = '-'; - s[2 * data[depth] - 1][data[offset] + data[left] + width / 2] = '+'; - s[2 * data[depth] - 1][data[offset] - width / 2 - 1] = '+'; + while (++i < width + data.left) + s[2 * data.depth - 1][data.offset - width / 2 + i] = '-'; + s[2 * data.depth - 1][data.offset + data.left + width / 2] = '+'; + s[2 * data.depth - 1][data.offset - width / 2 - 1] = '+'; } - return (data[left] + data[width] + right); + return (data.left + width + data.right); } static int print_t(t_btree *tree, - int data[5], char s[20][255], char *(*printer)(void *)) + t_printdata data, char s[20][255], char *(*printer)(void *)) { char b[20]; int width; @@ -51,10 +51,11 @@ static int print_t(t_btree *tree, if (!tree) return (0); sprintf(b, "%5s", printer(tree->item)); - data[left] = print_t(tree->left, (int[3]){ - 1, data[offset], data[depth] + 1}, s, printer); - data[right] = print_t(tree->right, (int[3]){ - 0, data[offset] + data[left] + width, data[depth] + 1}, s, printer); + data.left = print_t(tree->left, (t_printdata){ + 1, data.offset, data.depth + 1, data.left, data.right}, s, printer); + data.right = print_t(tree->right, (t_printdata){ + 0, data.offset + data.left + width, data.depth + 1, + data.left, data.right}, s, printer); return (print_t2(data, s, b)); } @@ -68,7 +69,7 @@ void btree_print(t_btree *tree, char *(*printer)(void *)) while (++i < 20) sprintf(s[i], "%80s", " "); sprintf(empty, "%80s", " "); - print_t(tree, (int[5]){0, 0, 0, 0, 0}, s, printer); + print_t(tree, (t_printdata){0, 0, 0, 0, 0}, s, printer); i = -1; while (++i < 20) { diff --git a/libft/src/misc/ft_debug.c b/libft/src/misc/ft_debug.c index 4795c23b..c3a5341f 100644 --- a/libft/src/misc/ft_debug.c +++ b/libft/src/misc/ft_debug.c @@ -17,5 +17,5 @@ void ft_debug(void) static int n = 0; n++; - ft_printf("----------\n check %02i\n----------\n", n); + ft_dprintf(2, "----------\n check %02i\n----------\n", n); }