finish to link all the files

This commit is contained in:
Maoake Teriierooiterai
2026-01-07 10:06:38 +01:00
parent ca732b1b97
commit 95577e5f02
15 changed files with 158 additions and 319 deletions

View File

@@ -11,9 +11,10 @@
/* ************************************************************************** */
#include "push_swap.h"
#include "medium_headers.h"
#include <stdlib.h>
t_tab *allocate_tab(int range_max, int nb)
static t_tab *allocate_tab(int range_max, int nb)
{
t_tab *tab;
@@ -26,6 +27,45 @@ t_tab *allocate_tab(int range_max, int nb)
return (tab);
}
static t_tab *free_tab(t_tab **first)
{
if (!(*first))
return (NULL);
if ((*first)->next)
free_tab(&(*first)->next);
free(*first);
return (NULL);
}
static t_tab *init_first_tab(t_stack *first, int range)
{
t_tab *tab;
int lower;
int range_max;
lower = get_first_lower(first);
range_max = calcul_range(lower, range);
tab = allocate_tab(range_max, get_number_in_range(range_max, first, range));
if (!tab)
return (NULL);
return (tab);
}
static t_tab *get_next_tab(t_stack *first, t_tab *tab, int range)
{
int lower;
int range_max;
t_tab *next_tab;
lower = get_next_lower(first, tab->max_range);
range_max = calcul_range(lower, range);
next_tab = allocate_tab(range_max,
get_number_in_range(range_max, first, range));
if (!next_tab)
return (NULL);
return (next_tab);
}
t_tab *get_tabs(t_stack *first, int range)
{
t_tab *tmp;
@@ -49,40 +89,3 @@ t_tab *get_tabs(t_stack *first, int range)
}
return (first_tab);
}
t_tab *init_first_tab(t_stack *first, int range)
{
t_tab *tab;
int lower;
int range_max;
lower = get_first_lower(first);
range_max = calcul_range(lower, range);
tab = allocate_tab(range_max, get_number_in_range(range_max, first, range));
if (!tab)
return (NULL);
return (tab);
}
t_tab *get_next_tab(t_stack *first, t_tab *tab, int range)
{
int lower;
int range_max;
t_tab *next_tab;
lower = get_next_lower(first, tab->max_range);
range_max = calcul_range(lower, range);
next_tab = allocate_tab(range_max,
get_number_in_range(range_max, first, range));
return (next_tab);
}
t_tab *free_tab(t_tab **first)
{
if (!(*first))
return (NULL);
if ((*first)->next)
free_tab(&(*first)->next);
free(*first);
return (NULL);
}