aboutsummaryrefslogtreecommitdiff
path: root/c12/ex15
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/ex15
parent454d82f30e354e2629563822bac637e5eaa8e4ff (diff)
downloadpiscine-e7acdc820fefa41ae00a7c776388e3d17250a2e9.tar.gz
piscine-e7acdc820fefa41ae00a7c776388e3d17250a2e9.tar.bz2
piscine-e7acdc820fefa41ae00a7c776388e3d17250a2e9.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--;
+ }
}