aboutsummaryrefslogtreecommitdiff
path: root/c12/ex15
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-24 08:02:55 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-24 08:02:55 +0200
commit5bab06313e71e9827baa426a02bbaf2a00b4e6a0 (patch)
tree5604e51c0008088f25b2f5dfb9143a852dd079dd /c12/ex15
parent23ad79e8b41c25bb4992d103d29a17612a52e351 (diff)
downloadpiscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.tar.gz
piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.tar.bz2
piscine-5bab06313e71e9827baa426a02bbaf2a00b4e6a0.zip
c12 passed, c13 start
Diffstat (limited to 'c12/ex15')
-rw-r--r--c12/ex15/ft_list.h4
-rw-r--r--c12/ex15/ft_list_reverse_fun.c47
2 files changed, 38 insertions, 13 deletions
diff --git a/c12/ex15/ft_list.h b/c12/ex15/ft_list.h
index 5eafe75..3fd2c68 100644
--- a/c12/ex15/ft_list.h
+++ b/c12/ex15/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/19 08:26:12 by cacharle ### ########.fr */
+/* Updated: 2019/07/23 15:22:30 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_LIST_H
-#define FT_LIST_H
+# define FT_LIST_H
typedef struct s_list
{
diff --git a/c12/ex15/ft_list_reverse_fun.c b/c12/ex15/ft_list_reverse_fun.c
index 9ee845e..ffbeea2 100644
--- a/c12/ex15/ft_list_reverse_fun.c
+++ b/c12/ex15/ft_list_reverse_fun.c
@@ -6,22 +6,47 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/19 13:55:34 by cacharle #+# #+# */
-/* Updated: 2019/07/20 08:18:04 by cacharle ### ########.fr */
+/* Updated: 2019/07/23 15:44:23 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-static t_list *reverse_rec(t_list *begin_list)
+#include <stdlib.h>
+#include "ft_list.h"
+
+static t_list *my_at(t_list *begin_list, int nbr)
+{
+ while (nbr-- > 0 && begin_list != NULL)
+ begin_list = begin_list->next;
+ return (begin_list);
+}
+
+static int my_size(t_list *begin_list)
{
- if (!begin_list)
- return begin_list;
- if (!begin_list->next)
- return begin_list;
- ft_list_reverse_fun(begin_list->next);
- begin_list->next->next = begin_list;
- begin_list->next = NULL;
+ int counter;
+
+ counter = 0;
+ while (begin_list->next)
+ {
+ counter++;
+ begin_list = begin_list->next;
+ }
+ return (counter);
}
-void ft_list_reverse_fun(t_list *begin_list)
+void ft_list_reverse_fun(t_list *begin_list)
{
- begin_list = reverse_rec(begin_list);
+ void *tmp;
+ unsigned int j;
+ unsigned int i;
+
+ j = my_size(begin_list);
+ i = 0;
+ while (i < j)
+ {
+ tmp = my_at(begin_list, i)->data;
+ my_at(begin_list, i)->data = my_at(begin_list, j)->data;
+ my_at(begin_list, j)->data = tmp;
+ i++;
+ j--;
+ }
}