int partition(t_pile **a, t_pile **b, int left, int right) { int i; int j; int pivot; int h; i = left; j = right; h = ft_lst_len(*a); pivot = get_value((j + i) / 2, *a); while (i <= j) { while (get_value(i, *a) < pivot) i++; while (get_value(j, *a) > pivot) j--; if (i <= j) { /* ft_putstr("LEN:"); ft_putnbr(h); ft_putchar('\n'); ft_putstr("PIVOT:"); ft_putnbr(pivot); ft_putstr("I:"); ft_putnbr(i); ft_putstr("J:"); ft_putnbr(j); ft_putchar('\n');*/ invers_pos(i, j, a, b); // ft_display_stacks(*a, *b); i++; j--; } } // printf("I %d\n", i); return (i); }
t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem)) { t_list *tmp_new_map; t_list *new_map; if (!lst) return (NULL); new_map = NULL; tmp_new_map = NULL; if ((new_map = (t_list *)malloc(ft_lst_len(lst) * sizeof(t_list)))) { new_map = f(ft_lstnew(lst->content, lst->content_size)); tmp_new_map = new_map; lst = lst->next; while (lst) { tmp_new_map->next = f(ft_lstnew(lst->content, lst->content_size)); tmp_new_map = tmp_new_map->next; lst = lst->next; } } return (new_map); }