This commit is contained in:
Alexandre POMMIER 2022-01-19 18:38:31 +01:00
parent ce00d75eb3
commit 05b259f57b
4 changed files with 40 additions and 14 deletions

View File

@ -60,3 +60,29 @@ t_list *is_double_one(t_list *lst)
} }
return (start); return (start);
} }
int max_and_sorted(t_list *start)
{
long long swap;
t_list *lst;
lst = start;
swap = 0;
while (start)
{
swap = *(long long *)start->nbr;
if (swap > 2147483647 || swap < -2147483648)
{
ft_putstr_fd("Error\n", 2);
ft_lstclear(&start, &free);
return (1);
}
start = start->next;
}
if (is_sorted(lst))
{
ft_lstclear(&lst, &free);
return (1);
}
return (0);
}

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2021/11/25 23:10:37 by apommier #+# #+# */ /* Created: 2021/11/25 23:10:37 by apommier #+# #+# */
/* Updated: 2022/01/19 05:53:41 by apommier ### ########.fr */ /* Updated: 2022/01/19 18:33:54 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -58,7 +58,7 @@ int is_double(int nbrarg, char **list)
len = ft_strlen(list[j]); len = ft_strlen(list[j]);
else else
len = ft_strlen(list[j + i]); len = ft_strlen(list[j + i]);
if (ft_strncmp(list[j], list[j + i], len) == 0) if (ft_strncmp(list[j], list[j + i], len) == 0 || len > 11)
return (0); return (0);
i++; i++;
} }
@ -79,11 +79,11 @@ int push_swap(int nbrarg, char **list)
return (0); return (0);
} }
start = set_list(--nbrarg, list); start = set_list(--nbrarg, list);
lst_size = ft_lstsize(start);
lst_indexing(start); lst_indexing(start);
start = is_double_one(start); start = is_double_one(start);
if (!start) if (!start || max_and_sorted(start))
return (0); return (0);
lst_size = ft_lstsize(start);
if (lst_size == 1) if (lst_size == 1)
return (1); return (1);
if (lst_size == 3 || lst_size == 5) if (lst_size == 3 || lst_size == 5)
@ -98,10 +98,10 @@ int push_swap(int nbrarg, char **list)
t_list *set_list(int nbrarg, char **src) t_list *set_list(int nbrarg, char **src)
{ {
int *tmp; long long *tmp;
int i; int i;
int j; int j;
t_list *swap; t_list *swap;
j = 1; j = 1;
tmp = 0; tmp = 0;
@ -112,8 +112,8 @@ t_list *set_list(int nbrarg, char **src)
i = 0; i = 0;
while (src[j][i]) while (src[j][i])
{ {
tmp = ft_calloc(sizeof(int), 1); tmp = ft_calloc(sizeof(long long), 1);
*tmp = ft_atoi(&src[j][i]); *tmp = (long long)ft_atoi(&src[j][i]);
ft_lstadd_back(&swap, ft_lstnew(tmp)); ft_lstadd_back(&swap, ft_lstnew(tmp));
while ((src[j][i] >= '0' && src[j][i] <= '9') || src[j][i] == '-') while ((src[j][i] >= '0' && src[j][i] <= '9') || src[j][i] == '-')
i++; i++;

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2021/11/25 23:15:17 by apommier #+# #+# */ /* Created: 2021/11/25 23:15:17 by apommier #+# #+# */
/* Updated: 2022/01/19 06:06:31 by apommier ### ########.fr */ /* Updated: 2022/01/19 18:38:00 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -29,6 +29,7 @@ t_list *set_list(int nbrarg, char **list);
void lst_indexing(t_list *list); void lst_indexing(t_list *list);
int is_double(int nbrarg, char **list); int is_double(int nbrarg, char **list);
t_list *is_double_one(t_list *lst); t_list *is_double_one(t_list *lst);
int max_and_sorted(t_list *start);
t_list *find_loop_index(t_list *list); t_list *find_loop_index(t_list *list);
int find_loop(t_list *start, t_list *list, int setswap); int find_loop(t_list *start, t_list *list, int setswap);
t_list *ft_lstnew(void *content); t_list *ft_lstnew(void *content);
@ -89,6 +90,4 @@ int do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete);
t_slist *verify_list(t_slist *a); t_slist *verify_list(t_slist *a);
void big_slstclear(t_slist **lst); void big_slstclear(t_slist **lst);
void printf_llist(t_list *start);
#endif #endif

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/18 03:31:31 by apommier #+# #+# */ /* Created: 2022/01/18 03:31:31 by apommier #+# #+# */
/* Updated: 2022/01/19 06:03:44 by apommier ### ########.fr */ /* Updated: 2022/01/19 18:33:33 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -29,6 +29,7 @@ void sort_little(t_list *list)
list = turn_list(list, action); list = turn_list(list, action);
printf_slist(action); printf_slist(action);
s_lstclear(&action); s_lstclear(&action);
ft_lstclear(&list, &free);
} }
t_list *sort3(t_list *a, t_slist **action) t_list *sort3(t_list *a, t_slist **action)