aboutsummaryrefslogtreecommitdiff
path: root/c12/ex16
diff options
context:
space:
mode:
authorCabergs Charles <cacharle@e-r6-p7.s19.be>2019-07-24 08:02:55 +0200
committerCabergs Charles <cacharle@e-r6-p7.s19.be>2019-07-24 08:02:55 +0200
commite7acdc820fefa41ae00a7c776388e3d17250a2e9 (patch)
tree5604e51c0008088f25b2f5dfb9143a852dd079dd /c12/ex16
parent454d82f30e354e2629563822bac637e5eaa8e4ff (diff)
downloadpiscine-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.h6
-rw-r--r--c12/ex16/ft_sorted_list_insert.c24
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;
}