static t_lst *pos_pres_s(t_lst *lst, t_data *data) { int count; t_lst *start; t_lst *tmp; if (!data->precision) { free_lst(lst); return (0); } if (lst_len(lst) > data->precision) { start = lst; count = data->precision; while (count > 1) { lst = lst->next; count--; } tmp = lst->next; lst->next = 0; free_lst(tmp); return (start); } return (lst); }
int main(int argc, char **argv) { t_shell *head; int i; i = argc == 2 ? 0 : 1; if (argc == 2 && string_is_valid(argv[1])) argv = ft_strsplit(argv[1], ' '); if (argc == 1 || !(head = (t_shell*)malloc(sizeof(t_shell)))) return (0); init_head(head); while (argv[i]) { if (check_digit(argv[i]) == -1) return (flush(head->sa, 0)); head->sa = push_back_stack2(head->sa, ft_atoi(argv[i])); head->max = ft_atoi(argv[i]) > head->max ? ft_atoi(argv[i]) : head->max; i++; } head->len = l_len(head->sa); which_swap(head); free_lst(head); if (argc == 2) free_array(argv); if (head) free(head); return (0); }
static void free_lst(NODE *l, int free_vals) { if(l == NULL) return; free_lst(l->next, free_vals ); free(l->key); // made our own copy if(free_vals && l->val != NULL) free(l->val); free(l); }
void hmap_free(HMAP_PTR map, int free_vals) { int i; for(i=0; i<map->tsize; i++) free_lst(map->tbl[i].members, free_vals); free(map->tbl); map->tbl = NULL; // not needed free(map); }
int lst_finish(t_lst *lst, t_data *data) { int count; lst = format_lst(lst, data); print_lst(lst); count = lst_len(lst); free_lst(lst); return (count); }
t_list *ft_lstfrom_void_tab(const void *tab, size_t tab_size, size_t content_size) { int i; t_list *lst; t_list *add; char *tmp; int size; if (!tab || !content_size) return (NULL); i = -1; lst = NULL; size = tab_size / content_size; while (++i < size) { if (!(tmp = ft_strdup(tab + i * content_size))) return (free_lst(lst)); if (!(add = ft_lstnew(tmp, ft_strlen(tmp)))) return (free_lst(lst)); ft_lstpush(&lst, add); } return (lst); }
void solve(t_tet *lst) { t_matrix matrix; int len; len = nk_sqrt(list_count(lst)); matrix = create_matrix(len, len); while ((matrix.map = recurse(matrix, lst, return_pos(0, 0))) == NULL) { matrix = create_matrix(len, len); len++; } display_matrix(matrix); free_lst(lst); free_matrix(matrix.map, matrix.size_y); }