/* ************************************************************************** */ /* */ /* .--. _ */ /* checkandinit.c |o_o || | */ /* |:_/ || |_ _ ___ __ */ /* By: djonker // \ \ __| | | \ \/ / */ /* (| | )|_| |_| |> < */ /* Created: 2022/11/22 16:26:23 by djonker /'\_ _/`\__|\__,_/_/\_\ */ /* Updated: 2022/11/24 07:24:34 by djonker \___)=(___/ */ /* */ /* ************************************************************************** */ #include "../push_swap.h" int charactercheck(char **stack) { int i; int j; i = 1; j = 0; while (stack[i]) { if (stack[i][0] == '-') { if (stack[i][1] < '0' || stack[i][1] > '9') return (1); else j++; } while (stack[i][j]) { if (stack[i][j] < '0' || stack[i][j] > '9' || j > 10) return (1); j++; } i++; j = 0; } return (0); } int finddouble(char **stack) { int i; int j; i = 1; while (stack[i]) { j = i; while (stack[j]) { if (j != i) if (ft_atoi(stack[i]) == ft_atoi(stack[j])) return (1); j++; } i++; } return (0); } int initstack(t_varlist *vl, long value) { t_stack *cstack; t_stack *last; if (value == 9999999999) errorreturn(vl, 1); cstack = ft_calloc(sizeof(t_stack), 1); if (cstack == NULL) exit (0); vl->nbrs++; cstack->data = value; if (vl->a == NULL) { cstack->n = cstack; cstack->p = cstack; vl->a = cstack; } else { last = vl->a->p; cstack->n = vl->a; vl->a->p = cstack; cstack->p = last; last->n = cstack; } return (0); } int idall(t_varlist *vl) { t_stack *cstack; cstack = vl->a; vl->low = 2147483648; if (cstack->data < vl->low && cstack->data > vl->oldlow) vl->low = cstack->data; while (cstack->n != vl->a) { if (cstack->n->data < vl->low && cstack->n->data > vl->oldlow) vl->low = cstack->n->data; cstack = cstack->n; } vl->oldlow = vl->low; while (vl->low != cstack->data) { cstack = cstack->n; } cstack->id = vl->idcounter; vl->idcounter++; return (0); } t_varlist *create_struct(t_varlist *vl) { vl = (t_varlist *)ft_calloc(sizeof(t_varlist), 1); if (vl == NULL) exit(1); vl->a = NULL; vl->b = NULL; vl->high = 0; vl->low = 0; vl->moves = 0; vl->nbrs = 0; vl->direction = 0; vl->idcounter = 1; vl->oldlow = -2147483649; vl->hdiv = 0; vl->ldiv = 0; vl->odiv = 0; return (vl); }