From 1f5c92e0b055f9be1378bcace4f0ac1e40d0e7b7 Mon Sep 17 00:00:00 2001 From: kinou-p Date: Tue, 18 Jan 2022 22:37:33 +0100 Subject: [PATCH] done --- Utils/process.c | 2 +- push_swap.h => Utils/push_swap.h | 23 +++++- Utils/sort_little.c | 31 +++---- checker_folder/a.out | Bin 0 -> 53584 bytes checker_folder/checker_utils.c | 29 +++++++ checker_folder/main.c | 125 ++++++++++++++++++++++++++++ libft/get_next_line.h | 19 +++++ optimise_move.c | 124 ---------------------------- optimise_move2.c | 83 ------------------- push_swap.c | 135 ------------------------------ set_a.c | 136 ------------------------------- sort_liltte.c | 0 sorting.c | 128 ----------------------------- t_slist.c | 70 ---------------- 14 files changed, 206 insertions(+), 699 deletions(-) rename push_swap.h => Utils/push_swap.h (82%) create mode 100755 checker_folder/a.out create mode 100644 checker_folder/checker_utils.c create mode 100644 checker_folder/main.c create mode 100644 libft/get_next_line.h delete mode 100644 optimise_move.c delete mode 100644 optimise_move2.c delete mode 100644 push_swap.c delete mode 100644 set_a.c delete mode 100644 sort_liltte.c delete mode 100644 sorting.c delete mode 100644 t_slist.c diff --git a/Utils/process.c b/Utils/process.c index c54d455..2683bb6 100644 --- a/Utils/process.c +++ b/Utils/process.c @@ -68,7 +68,7 @@ void ft_rra_rrb(t_list **list, t_slist **process, char type) { t_list *swap; - if(!(*list)->next) + if (!(*list)->next) return ; swap = ft_lstlast(*list); ft_lstbeforelast(*list)->next = 0; diff --git a/push_swap.h b/Utils/push_swap.h similarity index 82% rename from push_swap.h rename to Utils/push_swap.h index 39db1b0..bb3111e 100644 --- a/push_swap.h +++ b/Utils/push_swap.h @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/11/25 23:15:17 by apommier #+# #+# */ -/* Updated: 2022/01/17 15:46:29 by apommier ### ########.fr */ +/* Updated: 2022/01/18 21:45:38 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,7 +15,8 @@ # include # include -# include "./libft/libft.h" +# include "../libft/libft.h" +# include "../libft/get_next_line.h" typedef struct procest_slist { @@ -23,13 +24,11 @@ typedef struct procest_slist struct procest_slist *next; } t_slist; -void sort3(t_list *list); int push_swap(int nbrarg, char **list); int is_nbr(int nbrarg, char **list); t_list *set_list(int nbrarg, char **list); void lst_indexing(t_list *list); int is_double(int nbrarg, char **list); -int is_sorted(t_list *list); t_list *find_loop_index(t_list *list); int find_loop(t_list *start, t_list *list, int setswap); t_list *ft_lstnew(void *content); @@ -59,6 +58,13 @@ int find_nbr(int size_b, t_list *a, t_list *b, int index_b); t_list *swap_to_b(t_list *list, t_list *best, t_list *b, int loop); t_list *turn_list(t_list *a, t_slist *action); +/*sort little*/ +t_list *sort3(t_list *list, t_slist **action); +void sort_little(t_list *list); +t_list *sort5(t_list *list, t_slist **action, t_list *b); +int is_sorted(t_list *list); +t_list *end_sort3(t_list *list, t_slist **action); + /*optimise list of action*/ t_slist *transform_list(t_slist *start, t_slist *start2, int r1, int r2); t_slist *transform_list2(t_slist *start, t_slist *start2, int r1, int r2); @@ -69,4 +75,13 @@ void optimise_move2(t_slist **action, t_slist *start2, int r1); void cut_lst(t_slist *lst); int ft_strcmp(const char *s1, t_slist *str); +/*checker*/ +int checker(t_slist *action, t_list **a); +void do_move(t_list **lst, t_list **lst_b, t_slist *a, t_slist *delete); +void do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete); +t_slist *verify_list(t_slist *a); +void big_slstclear(t_slist **lst); + +void printf_llist(t_list *start); + #endif \ No newline at end of file diff --git a/Utils/sort_little.c b/Utils/sort_little.c index 234baa3..c525c05 100644 --- a/Utils/sort_little.c +++ b/Utils/sort_little.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/18 03:31:31 by apommier #+# #+# */ -/* Updated: 2022/01/18 06:46:07 by apommier ### ########.fr */ +/* Updated: 2022/01/18 21:59:23 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,24 +17,25 @@ //} -void printf_llist(t_list *start) +void printf_llist(t_list *start) { - int i = 0; + int i; + i = 0; printf("----printf_list----\n"); - while(start) + while (start) { i++; - printf("lst%d --- nbr: %d index: %d\n", i,*(int*)start->nbr, start->index); + printf("lst%d--nbr:%d indx: %d\n", i,*(int *)start->nbr, start->index); start = start->next; - } - printf("----end_print----"); - return; + } + printf("----end_print----"); + return ; } void sort_little(t_list *list) { - t_slist *action; + t_slist *action; action = 0; if (is_sorted(list)) @@ -81,34 +82,28 @@ t_list *sort3(t_list *a, t_slist **action) t_list *sort5(t_list *list, t_slist **action, t_list *b) { - ft_pb(&list, &b, action); ft_pb(&list, &b, action); list = sort3(list, action); - //printf_llist(list); if (b->index < b->next->index) ft_sa_sb(&b, action, 'b', 1); if (b->index == 5) ft_pa(&list, &b, action); while (b) { - list = swap(list, &b, action, b); + list = swap(list, &b, action, b); } - //printf_llist(list); return (list); } - - -int is_sorted(t_list *list) +int is_sorted(t_list *list) { while (list->next) { if (list->index > list->next->index) - return (0); + return (0); else list = list->next; } return (1); } - diff --git a/checker_folder/a.out b/checker_folder/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6824c0a90f12f6b011e9a65e1bd7700ecb5ce2d GIT binary patch literal 53584 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 i9=GPT?~uH`YLN0Z;c(m} +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/01/18 02:14:22 by apommier #+# #+# */ +/* Updated: 2022/01/18 06:49:36 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../Utils/push_swap.h" + +void do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete) +{ + if (!ft_strcmp("rr\n", a)) + { + if ((*lst)->next) + ft_ra_rb(lst, delete, 'a'); + if ((*lst_b)->next) + ft_ra_rb(lst_b, delete, 'b'); + } + if (!ft_strcmp("rrr\n", a)) + { + ft_rra_rrb(lst, delete, 'a'); + ft_rra_rrb(lst_b, delete, 'a'); + } +} diff --git a/checker_folder/main.c b/checker_folder/main.c new file mode 100644 index 0000000..1d56785 --- /dev/null +++ b/checker_folder/main.c @@ -0,0 +1,125 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/01/17 21:29:45 by apommier #+# #+# */ +/* Updated: 2022/01/18 06:49:49 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../Utils/push_swap.h" + +void big_slstclear(t_slist **lst) +{ + t_slist *chr; + + chr = *lst; + while (*lst) + { + chr = (*lst)->next; + free((*lst)->action); + free(*lst); + *lst = chr; + } + lst = 0; +} + +t_slist *verify_list(t_slist *a) +{ + t_slist *start; + + start = a; + while (a && a->action) + { + if (!ft_strcmp("sa\n", a) || !ft_strcmp("rb\n", a) + || !ft_strcmp("rr\n", a) || !ft_strcmp("rra\n", a) + || !ft_strcmp("rrb\n", a) || !ft_strcmp("rrr\n", a) + || !ft_strcmp("ra\n", a) || !ft_strcmp("pa\n", a) + || !ft_strcmp("pb\n", a) || !ft_strcmp("sb\n", a)) + a = a->next; + else + { + ft_putstr_fd("Error\n", 2); + big_slstclear(&start); + return (0); + } + } + return (start); +} + +void do_move(t_list **lst, t_list **lst_b, t_slist *a, t_slist *delete) +{ + if (!ft_strcmp("pa\n", a)) + ft_pa(lst, lst_b, &delete); + else if (!ft_strcmp("pb\n", a)) + ft_pb(lst, lst_b, &delete); + else if (!ft_strcmp("sa\n", a)) + ft_sa_sb(lst, &delete, 'a', 0); + else if (!ft_strcmp("sb\n", a)) + ft_sa_sb(lst_b, &delete, 'b', 0); + else if (!ft_strcmp("ra\n", a)) + ft_ra_rb(lst, &delete, 'a'); + else if (!ft_strcmp("rb\n", a)) + ft_ra_rb(lst_b, &delete, 'b'); + else if (!ft_strcmp("rra\n", a)) + ft_rra_rrb(lst, &delete, 'a'); + else if (!ft_strcmp("rrb\n", a)) + ft_rra_rrb(lst_b, &delete, 'b'); + else + do_move2(lst, lst_b, a, &delete); + s_lstclear(&delete); +} + +int checker(t_slist *action, t_list **a) +{ + t_list *lst_b; + int lst_size; + + lst_size = ft_lstsize(*a); + lst_b = 0; + action = verify_list(action); + if (!(*a)) + return (0); + while (action) + { + do_move(a, &lst_b, action, 0); + action = action->next; + } + if (is_sorted(*a) && lst_size == ft_lstsize(*a)) + ft_putendl_fd("OK", 1); + else + ft_putendl_fd("KO", 1); + return (1); +} + +int main(int argc, char **argv) +{ + t_list *start; + t_slist *start_action; + char *line; + + start_action = 0; + if (argc == 1) + return (1); + if (!is_nbr(argc, argv) || !is_double(argc, argv)) + { + ft_putstr_fd("Error\n", 2); + return (0); + } + start = set_list(--argc, argv); + lst_indexing(start); + line = get_next_line(0); + while (line) + { + if (line) + s_lstadd_back(&start_action, new_slist(line)); + line = get_next_line(0); + } + checker(start_action, &start); + ft_lstclear(&start, &free); + big_slstclear(&start_action); + return (1); +} diff --git a/libft/get_next_line.h b/libft/get_next_line.h new file mode 100644 index 0000000..35d74d6 --- /dev/null +++ b/libft/get_next_line.h @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/14 05:58:49 by apommier #+# #+# */ +/* Updated: 2022/01/17 21:45:15 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GET_NEXT_LINE_H +# define GET_NEXT_LINE_H + +char *get_next_line(int fd); +char *ft_strjoin(char *save, char *s2); + +#endif diff --git a/optimise_move.c b/optimise_move.c deleted file mode 100644 index c68ce2e..0000000 --- a/optimise_move.c +++ /dev/null @@ -1,124 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* optimise_move.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/01/15 23:50:43 by apommier #+# #+# */ -/* Updated: 2022/01/17 14:09:26 by apommier ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include"push_swap.h" - -int ft_strcmp(const char *s1, t_slist *str) -{ - int i; - char *s2; - - if (!str) - return (1); - s2 = (char *)str->action; - i = 0; - if (s2) - { - while (s1[i] || s2[i]) - { - if (s1[i] != s2[i]) - { - return ((unsigned char)s1[i] - (unsigned char)s2[i]); - } - i++; - } - return (0); - } - return (1); -} - -void cut_lst(t_slist *lst) -{ - t_slist *save; - - save = 0; - if (!lst) - return ; - if (lst->next) - { - save = lst->next->next; - lst->next->next = 0; - if (lst->next) - free(lst->next); - lst->next = save; - } -} - -t_slist *transform_list(t_slist *start, t_slist *start2, int r1, int r2) -{ - t_slist *type; - - type = start; - if (r2 < r1) - { - while (r2--) - { - cut_lst(start2); - start->action = "rr"; - start = start->next; - } - } - else - { - while (r1--) - { - cut_lst(start2); - start->action = "rr"; - start = start->next; - } - } - return (type); -} - -t_slist *sequence(t_slist *lst, t_slist *start1, t_slist *start2, int r1) -{ - char *type; - int r2; - - type = 0; - r2 = 0; - if (!ft_strcmp("ra", lst) || !ft_strcmp("rb", lst)) - { - type = lst->action; - while (!ft_strcmp(type, lst) && r2++ >= 0) - lst = lst->next; - lst = transform_list(start1, start2, r1, r2); - } - return (lst); -} - -void optimise_move(t_slist **action, t_slist *start2, int r1) -{ - t_slist *start1; - t_slist *lst; - char *type; - - type = 0; - lst = *action; - while (lst) - { - r1 = 0; - if (!ft_strcmp("ra", lst) || !ft_strcmp("rb", lst)) - { - start1 = lst; - type = lst->action; - while (!ft_strcmp(type, lst) && r1++ >= 0) - { - start2 = lst; - lst = lst->next; - } - lst = sequence(lst, start1, start2, r1); - } - else if (lst) - lst = lst->next; - } -} diff --git a/optimise_move2.c b/optimise_move2.c deleted file mode 100644 index 3bdbd74..0000000 --- a/optimise_move2.c +++ /dev/null @@ -1,83 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* optimise_move2.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/01/17 07:44:45 by apommier #+# #+# */ -/* Updated: 2022/01/17 14:16:41 by apommier ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "push_swap.h" - -t_slist *transform_list2(t_slist *start, t_slist *start2, int r1, int r2) -{ - t_slist *type; - - type = start; - if (r2 < r1) - { - while (r2--) - { - cut_lst(start2); - start->action = "rrr"; - start = start->next; - } - } - else - { - while (r1--) - { - cut_lst(start2); - start->action = "rrr"; - start = start->next; - } - } - return (type); -} - -t_slist *sequence2(t_slist *lst, t_slist *start1, t_slist *start2, int r1) -{ - char *type; - int r2; - - type = 0; - r2 = 0; - if (!ft_strcmp("rra", lst) || !ft_strcmp("rrb", lst)) - { - type = lst->action; - while (!ft_strcmp(type, lst) && r2++ >= 0) - lst = lst->next; - lst = transform_list2(start1, start2, r1, r2); - } - return (lst); -} - -void optimise_move2(t_slist **action, t_slist *start2, int r1) -{ - t_slist *start1; - t_slist *lst; - char *type; - - type = 0; - lst = *action; - while (lst) - { - r1 = 0; - if (!ft_strcmp("rra", lst) || !ft_strcmp("rrb", lst)) - { - start1 = lst; - type = lst->action; - while (!ft_strcmp(type, lst) && r1++ >= 0) - { - start2 = lst; - lst = lst->next; - } - lst = sequence2(lst, start1, start2, r1); - } - else if (lst) - lst = lst->next; - } -} diff --git a/push_swap.c b/push_swap.c deleted file mode 100644 index 24550a1..0000000 --- a/push_swap.c +++ /dev/null @@ -1,135 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* push_swap.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2021/11/25 23:10:37 by apommier #+# #+# */ -/* Updated: 2022/01/17 15:44:11 by apommier ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "push_swap.h" - -int is_nbr(int nbrarg, char **list) -{ - int i; - int j; - - i = 0; - j = 0; - while (--nbrarg) - { - j++; - i = 0; - while (list[j][i]) - { - while (list[j][i] == ' ') - i++; - if (list[j][i] == '-' || (list[j][i] == '+')) - i++; - if (list[j][i] && (list[j][i] < '0' || list[j][i] > '9')) - return (0); - while (list[j][i] && list[j][i] >= '0' && list[j][i] <= '9') - i++; - if (list[j][i] && list[j][i] != ' ') - return (0); - } - } - return (1); -} - -int is_double(int nbrarg, char **list) -{ - int i; - int j; - int len; - - i = 1; - j = 1; - nbrarg--; - while (nbrarg - j) - { - i = 1; - while (list[j + i]) - { - if (ft_strlen(list[j]) > ft_strlen(list[j + i])) - len = ft_strlen(list[j]); - else - len = ft_strlen(list[j + i]); - if (ft_strncmp(list[j], list[j + i], len) == 0) - return (0); - i++; - } - j++; - } - return (1); -} - -int push_swap(int nbrarg, char **list) -{ - t_list *start; - - start = 0; - if (!is_nbr(nbrarg, list) || !is_double(nbrarg, list)) - { - ft_putstr_fd("Error\n", 2); - return (0); - } - start = set_list(--nbrarg, list); - if (ft_lstsize(start) == 1) - return (1); - lst_indexing(start); - start = find_loop_index(start); - ft_lstclear(&start, &free); - return (1); -} - -t_list *set_list(int nbrarg, char **srcs) -{ - int *tmp; - int i; - int j; - t_list *swap; - - j = 1; - tmp = 0; - i = 0; - swap = 0; - while (nbrarg--) - { - i = 0; - while (srcs[j][i]) - { - tmp = ft_calloc(sizeof(int), 1); - *tmp = ft_atoi(&srcs[j][i]); - ft_lstadd_back(&swap, ft_lstnew(tmp)); - while (srcs[j][i] == ' ') - i++; - while (srcs[j][i] && srcs[j][i] != ' ') - i++; - } - j++; - } - return (swap); -} - -t_list *best_b(t_list **b, t_list *start_b, t_list *a, int best_move) -{ - int move; - t_list *best_b; - - move = 0; - while (*b) - { - move = find_nbr(ft_lstsize(start_b), a, start_b, (*b)->index); - if (move < best_move) - { - best_move = move; - best_b = *b; - } - *b = (*b)->next; - } - return (best_b); -} diff --git a/set_a.c b/set_a.c deleted file mode 100644 index 6d822fd..0000000 --- a/set_a.c +++ /dev/null @@ -1,136 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* set_a.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/01/07 19:14:03 by apommier #+# #+# */ -/* Updated: 2022/01/17 15:07:09 by apommier ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "push_swap.h" - -t_list *find_loop_index(t_list *list) -{ - t_list *start; - t_list *save; - int loop_size; - int loop_size2; - - loop_size2 = 0; - loop_size = 0; - start = list; - while (list) - { - loop_size = find_loop(start, list, 0); - if (loop_size > loop_size2) - { - loop_size2 = loop_size; - save = list; - } - list = list->next; - } - find_loop(start, save, 1); - list = swap_to_b(start, save, 0, loop_size2); - return (list); -} - -int find_loop(t_list *start, t_list *list, int setswap) -{ - int countdown; - int loop_size; - t_list *swap; - - loop_size = 0; - swap = list->next; - countdown = ft_lstsize(start) - 1; - while (countdown) - { - if (swap) - { - if (swap->index > list->index) - { - list = swap; - loop_size++; - } - else if (setswap) - swap->swap = 1; - countdown--; - swap = swap->next; - } - else - swap = start; - } - return (loop_size); -} - -t_list *swap_to_b(t_list *list, t_list *best, t_list *b, int loop) -{ - int lst_size; - t_slist *action; - - action = 0; - lst_size = ft_lstsize(list); - while (lst_size) - { - list = is_swap(list, &action, &loop, best); - if (list->swap) - ft_pb(&list, &b, &action); - else - ft_ra_rb(&list, &action, 'a'); - lst_size--; - } - list = swap_to_a(list, b, b, action); - list = turn_list(list, action); - optimise_move(&action, 0, 0); - optimise_move2(&action, 0, 0); - printf_slist(action); - s_lstclear(&action); - return (list); -} - -t_list *turn_list(t_list *a, t_slist *action) -{ - t_list *start; - int place; - - start = a; - place = 0; - while (a->index > 1) - { - a = a->next; - place++; - } - a = start; - if (place > ft_lstsize(a) / 2 && place > 2) - { - while (ft_lstsize(start) - (place++)) - ft_rra_rrb(&start, &action, 'a'); - } - else - { - while (place--) - ft_ra_rb(&start, &action, 'a'); - } - return (start); -} - -t_list *is_swap(t_list *list, t_slist **action, int *loop, t_list *best) -{ - int swap; - - swap = 0; - ft_sa_sb(&list, action, 'a', 0); - swap = find_loop(list, best, 0); - if (swap > *loop + 1) - { - *loop = swap; - s_lstadd_back(action, new_slist("sa")); - find_loop(list, best, 1); - } - else - ft_sa_sb(&list, action, 'a', 0); - return (list); -} diff --git a/sort_liltte.c b/sort_liltte.c deleted file mode 100644 index e69de29..0000000 diff --git a/sorting.c b/sorting.c deleted file mode 100644 index a174ac3..0000000 --- a/sorting.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* sorting.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/01/07 19:14:03 by apommier #+# #+# */ -/* Updated: 2022/01/07 19:14:03 by apommier ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "push_swap.h" - -t_list *swap(t_list *a, t_list **b, t_slist **action, t_list *to_swap) -{ - int place_for_b; - int place; - t_list *start_b; - - start_b = *b; - place = 0; - while ((*b)->index != to_swap->index) - { - place++; - *b = (*b)->next; - } - start_b = make_list(place, start_b, *action, 'b'); - place_for_b = find_place_for_b(a, to_swap->index, ft_lstsize(start_b)); - a = make_list(place_for_b, a, *action, 'a'); - *b = ft_pa(&a, &start_b, action); - return (a); -} - -t_list *make_list(int place, t_list *list, t_slist *action, char type) -{ - int lstsize; - - lstsize = ft_lstsize(list); - if (place > lstsize / 2) - { - while (lstsize - place) - { - ft_rra_rrb(&list, &action, type); - place++; - } - } - else - { - while (place) - { - ft_ra_rb(&list, &action, type); - place--; - } - } - return (list); -} - -t_list *swap_to_a(t_list *a, t_list *b, t_list *start_b, t_slist *action) -{ - int lst_size; - int size_b; - int move; - int best_move; - t_list *to_swap; - - to_swap = 0; - size_b = ft_lstsize(b); - move = size_b + ft_lstsize(a); - best_move = move; - lst_size = size_b; - while (lst_size) - { - best_move = ft_lstsize(a) + ft_lstsize(b); - b = start_b; - to_swap = best_b(&b, start_b, a, best_move); - a = swap(a, &start_b, &action, to_swap); - lst_size--; - } - return (a); -} - -int find_place_for_b(t_list *list, int index, int size_b) -{ - int count; - int save_index; - t_list *start; - - start = list; - save_index = ft_lstsize(list) + size_b; - count = 0; - while (list) - { - if (list->index > index && list->index < save_index) - save_index = list->index; - list = list->next; - } - while (start->index != save_index) - { - count++; - start = start->next; - } - return (count); -} - -int find_nbr(int size_b, t_list *a, t_list *b, int index_b) -{ - int move; - int place; - int size_a; - - size_a = ft_lstsize(a); - place = 1; - move = 0; - while (b->index != index_b) - { - place++; - b = b->next; - } - move = find_place_for_b(a, b->index, size_b); - if (move > size_a / 2) - move = size_a - move; - if (place > size_b / 2) - move += size_b - place; - else - move += place; - return (move); -} diff --git a/t_slist.c b/t_slist.c deleted file mode 100644 index 4b5966a..0000000 --- a/t_slist.c +++ /dev/null @@ -1,70 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* t_slist.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2022/01/09 18:46:50 by apommier #+# #+# */ -/* Updated: 2022/01/09 18:46:50 by apommier ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "push_swap.h" - -t_slist *new_slist(void *content) -{ - t_slist *new; - - new = (t_slist *)malloc(sizeof(t_slist)); - if (!new) - return (0); - new->action = content; - new->next = 0; - return (new); -} - -void s_lstclear(t_slist **lst) -{ - t_slist *chr; - - chr = *lst; - while (*lst) - { - chr = (*lst)->next; - free(*lst); - *lst = chr; - } - lst = 0; -} - -void s_lstadd_back(t_slist **alst, t_slist *new) -{ - if (*alst == 0) - *alst = new; - else - s_lstlast(*alst)->next = new; - new->next = 0; -} - -t_slist *s_lstlast(t_slist *lst) -{ - if (!lst) - return (0); - while (lst->next) - lst = lst->next; - return (lst); -} - -void printf_slist(t_slist *start) -{ - int i; - - i = 0; - while (start) - { - i++; - ft_putendl_fd((char *)start->action, 1); - start = start->next; - } -}