btree print smaller (no compact mode). sstr add duplicates new sring

This commit is contained in:
Jack Halford 2016-11-24 23:10:26 +01:00
parent b81c38c8ed
commit ec0d87c840
3 changed files with 18 additions and 25 deletions

View file

@ -37,29 +37,12 @@ static int print_t(t_btree *tree,
right = print_t(tree->right, (int[3]){ right = print_t(tree->right, (int[3]){
0, data[offset] + left + width, data[depth] + 1}, s, printer); 0, data[offset] + left + width, data[depth] + 1}, s, printer);
i = -1; i = -1;
while (++i < width)
s[data[depth]][data[offset] + left + i] = b[i];
if (data[depth] && data[is_left])
{
i = -1;
while (++i < width)
s[data[depth] - 1][data[offset] + left + width / 2 + i] = '-';
s[data[depth] - 1][data[offset] + left + width / 2] = '.';
}
else if (data[depth] && !data[is_left])
{
i = -1;
while (++i < width)
s[data[depth] - 1][data[offset] - width / 2 + i] = '-';
s[data[depth] - 1][data[offset] + left + width / 2] = '.';
}
i = -1;
while (++i < width) while (++i < width)
s[2 * data[depth]][data[offset] + left + i] = b[i]; s[2 * data[depth]][data[offset] + left + i] = b[i];
if (data[depth] && data[is_left]) if (data[depth] && data[is_left])
{ {
i = -1; i = -1;
while (++i < width) while (++i < width + right)
s[2 * data[depth] - 1][data[offset] + left + width / 2 + i] = '-'; s[2 * data[depth] - 1][data[offset] + left + width / 2 + i] = '-';
s[2 * data[depth] - 1][data[offset] + left + width / 2] = '+'; s[2 * data[depth] - 1][data[offset] + left + width / 2] = '+';
s[2 * data[depth] - 1][ s[2 * data[depth] - 1][
@ -68,7 +51,7 @@ static int print_t(t_btree *tree,
else if (data[depth] && !data[is_left]) else if (data[depth] && !data[is_left])
{ {
i = -1; i = -1;
while (++i < width) while (++i < width + left)
s[2 * data[depth] - 1][data[offset] - width / 2 + i] = '-'; s[2 * data[depth] - 1][data[offset] - width / 2 + i] = '-';
s[2 * data[depth] - 1][data[offset] + left + width / 2] = '+'; s[2 * data[depth] - 1][data[offset] + left + width / 2] = '+';
s[2 * data[depth] - 1][data[offset] - width / 2 - 1] = '+'; s[2 * data[depth] - 1][data[offset] - width / 2 - 1] = '+';

View file

@ -20,13 +20,19 @@ char **ft_sstradd(char **sstr, char *new)
i = 0; i = 0;
size = 0; size = 0;
while (sstr && sstr[size]) if (sstr)
size++; while (sstr[size])
size++;
if (!(newlist = (char **)malloc(sizeof(char *) * (size + 2)))) if (!(newlist = (char **)malloc(sizeof(char *) * (size + 2))))
return (NULL); return (NULL);
while (sstr && *sstr) if (sstr)
newlist[i++] = *sstr++; while (sstr[i])
newlist[i++] = new; {
newlist[i] = sstr[i];
i++;
}
newlist[i++] = ft_strdup(new);
newlist[i] = NULL; newlist[i] = NULL;
free(sstr);
return (newlist); return (newlist);
} }

View file

@ -18,5 +18,9 @@ void ft_sstrprint(char **list, char sep)
i = 0; i = 0;
while (list[i]) while (list[i])
ft_printf("%s%c", list[i++], sep); {
ft_putstr(list[i++]);
if (list[i])
ft_putchar(sep);
}
} }