From 7a34b3d412f5022d4ce25d84ec7fb4002b1fb5db Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Sat, 21 Feb 2026 17:33:28 +0100 Subject: Implement libft Part 3 (linked lists) with tests Add t_list struct and 9 linked list functions: ft_lstnew, ft_lstadd_front, ft_lstsize, ft_lstlast, ft_lstadd_back, ft_lstdelone, ft_lstclear, ft_lstiter, ft_lstmap. --- src/ft_lstmap.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/ft_lstmap.c (limited to 'src/ft_lstmap.c') diff --git a/src/ft_lstmap.c b/src/ft_lstmap.c new file mode 100644 index 0000000..c001a2d --- /dev/null +++ b/src/ft_lstmap.c @@ -0,0 +1,26 @@ +#include "libft.h" +#include + +t_list * +ft_lstmap (t_list *lst, void *(*f) (void *), void (*del) (void *)) +{ + t_list *new_list; + t_list *node; + void *content; + + new_list = NULL; + while (lst) + { + content = f (lst->content); + node = ft_lstnew (content); + if (!node) + { + del (content); + ft_lstclear (&new_list, del); + return (NULL); + } + ft_lstadd_back (&new_list, node); + lst = lst->next; + } + return (new_list); +} -- cgit v1.2.3