aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-08-20 14:25:24 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-08-20 14:25:24 +0200
commitffaebd5ffe714799254d6c520c4ad19a0157e672 (patch)
treed00da55c9ec8e0140b41586fcabb1bad7ab07c19
parentb878aa62024fdff08a9a76d80ddbeb1ee19d9179 (diff)
downloadlibft-ffaebd5ffe714799254d6c520c4ad19a0157e672.tar.gz
libft-ffaebd5ffe714799254d6c520c4ad19a0157e672.tar.bz2
libft-ffaebd5ffe714799254d6c520c4ad19a0157e672.zip
Added ft_lstpop_back
-rw-r--r--include/libft_lst.h3
-rw-r--r--src/lst/ft_lstpop_back.c31
2 files changed, 33 insertions, 1 deletions
diff --git a/include/libft_lst.h b/include/libft_lst.h
index 1d02b4e..09e7fb4 100644
--- a/include/libft_lst.h
+++ b/include/libft_lst.h
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/01/31 10:36:39 by cacharle #+# #+# */
-/* Updated: 2020/07/13 13:11:55 by charles ### ########.fr */
+/* Updated: 2020/08/20 13:10:57 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -41,6 +41,7 @@ int ft_lstsize(t_ftlst *lst);
void ft_lstpush_front(t_ftlst **alst, t_ftlst *new);
void ft_lstpush_back(t_ftlst **alst, t_ftlst *new);
void ft_lstpop_front(t_ftlst **lst, void (*del)(void *));
+void ft_lstpop_back(t_ftlst **lst, void (*del)(void *));
t_ftlst *ft_lstlast(t_ftlst *lst);
void ft_lstdelone(t_ftlst *lst, void (*del)(void *));
void ft_lstdestroy(t_ftlst **lst, void (*del)(void *));
diff --git a/src/lst/ft_lstpop_back.c b/src/lst/ft_lstpop_back.c
new file mode 100644
index 0000000..100ffb2
--- /dev/null
+++ b/src/lst/ft_lstpop_back.c
@@ -0,0 +1,31 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_lstpop_back.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <me@cacharle.xyz> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/08/20 13:07:51 by charles #+# #+# */
+/* Updated: 2020/08/20 13:10:38 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_lst.h"
+
+/*
+** \brief Delete last node
+** \param del Delete function for node data
+*/
+
+void ft_lstpop_back(t_ftlst **lst, void (*del)(void *))
+{
+ if (lst == NULL || *lst == NULL)
+ return ;
+ if ((*lst)->next == NULL)
+ {
+ ft_lstdelone(*lst, del);
+ *lst = NULL;
+ return ;
+ }
+ ft_lstpop_back(&(*lst)->next, del);
+}