diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-07-24 08:02:55 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-07-24 08:02:55 +0200 |
| commit | 5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (patch) | |
| tree | 5604e51c0008088f25b2f5dfb9143a852dd079dd /c12/ex14/ft_list_sort.c | |
| parent | 23ad79e8b41c25bb4992d103d29a17612a52e351 (diff) | |
| download | piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.tar.gz piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.tar.bz2 piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.zip | |
c12 passed, c13 start
Diffstat (limited to 'c12/ex14/ft_list_sort.c')
| -rw-r--r-- | c12/ex14/ft_list_sort.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/c12/ex14/ft_list_sort.c b/c12/ex14/ft_list_sort.c index 698d345..0d81425 100644 --- a/c12/ex14/ft_list_sort.c +++ b/c12/ex14/ft_list_sort.c @@ -6,14 +6,19 @@ /* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/19 13:43:11 by cacharle #+# #+# */ -/* Updated: 2019/07/19 13:53:54 by cacharle ### ########.fr */ +/* Updated: 2019/07/23 15:41:20 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -static int is_sorted(t_list **begin_list, int (*cmp)()) -{ - t_list *cursor; +#include <stdlib.h> +#include "ft_list.h" +static int is_sorted(t_list *cursor, int (*cmp)()) +{ + if (cursor == NULL) + return (1); + else if (cursor->next == NULL) + return (1); while (cursor->next) { if ((*cmp)(cursor->data, cursor->next->data) > 0) @@ -23,7 +28,7 @@ static int is_sorted(t_list **begin_list, int (*cmp)()) return (1); } -void ft_list_sort(t_list **begin_list, int (*cmp)()) +void ft_list_sort(t_list **begin_list, int (*cmp)()) { t_list *cursor; void *tmp; @@ -36,8 +41,8 @@ void ft_list_sort(t_list **begin_list, int (*cmp)()) if ((*cmp)(cursor->data, cursor->next->data) > 0) { tmp = cursor->data; - cursor->data = cursor->data->next; - cursor->data->next = tmp; + cursor->data = cursor->next->data; + cursor->next->data = tmp; } cursor = cursor->next; } |
