diff options
| author | Cabergs Charles <cacharle@e-r6-p7.s19.be> | 2019-07-24 08:02:55 +0200 |
|---|---|---|
| committer | Cabergs Charles <cacharle@e-r6-p7.s19.be> | 2019-07-24 08:02:55 +0200 |
| commit | e7acdc820fefa41ae00a7c776388e3d17250a2e9 (patch) | |
| tree | 5604e51c0008088f25b2f5dfb9143a852dd079dd /c12/ex16 | |
| parent | 454d82f30e354e2629563822bac637e5eaa8e4ff (diff) | |
| download | piscine-e7acdc820fefa41ae00a7c776388e3d17250a2e9.tar.gz piscine-e7acdc820fefa41ae00a7c776388e3d17250a2e9.tar.bz2 piscine-e7acdc820fefa41ae00a7c776388e3d17250a2e9.zip | |
c12 passed, c13 start
Diffstat (limited to 'c12/ex16')
| -rw-r--r-- | c12/ex16/ft_list.h | 6 | ||||
| -rw-r--r-- | c12/ex16/ft_sorted_list_insert.c | 24 |
2 files changed, 26 insertions, 4 deletions
diff --git a/c12/ex16/ft_list.h b/c12/ex16/ft_list.h index 8b736b4..80ec970 100644 --- a/c12/ex16/ft_list.h +++ b/c12/ex16/ft_list.h @@ -6,12 +6,12 @@ /* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/09 14:33:17 by cacharle #+# #+# */ -/* Updated: 2019/07/09 14:42:55 by cacharle ### ########.fr */ +/* Updated: 2019/07/23 15:23:48 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef FT_LIST_H -#define FT_LIST_H +# define FT_LIST_H typedef struct s_list { @@ -19,6 +19,6 @@ typedef struct s_list void *data; } t_list; -t_list *ft_create_elem(void *data); +t_list *ft_create_elem(void *data); #endif diff --git a/c12/ex16/ft_sorted_list_insert.c b/c12/ex16/ft_sorted_list_insert.c index 2ca345a..f99e567 100644 --- a/c12/ex16/ft_sorted_list_insert.c +++ b/c12/ex16/ft_sorted_list_insert.c @@ -6,11 +6,33 @@ /* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/07/20 08:19:32 by cacharle #+# #+# */ -/* Updated: 2019/07/20 08:23:17 by cacharle ### ########.fr */ +/* Updated: 2019/07/23 15:44:40 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ +#include <stdlib.h> +#include "ft_list.h" + void ft_sorted_list_insert(t_list **begin_list, void *data, int (*cmp)()) { + t_list *cursor; + t_list *elem; + cursor = *begin_list; + elem = ft_create_elem(data); + if (cursor == NULL) + { + *begin_list = elem; + return ; + } + if ((*cmp)(elem->data, cursor->data) < 0) + { + elem->next = cursor; + *begin_list = elem; + return ; + } + while (cursor->next && (*cmp)(elem->data, cursor->next->data) > 0) + cursor = cursor->next; + elem->next = cursor->next; + cursor->next = elem; } |
