libft
Loading...
Searching...
No Matches
ft_lstmap.c
Go to the documentation of this file.
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* ft_lstmap_bonus.c :+: :+: :+: */
5/* +:+ +:+ +:+ */
6/* By: tspoof <tspoof@student.hive.fi> +#+ +:+ +#+ */
7/* +#+#+#+#+#+ +#+ */
8/* Created: 2022/11/07 16:14:10 by tspoof #+# #+# */
9/* Updated: 2022/11/09 18:58:00 by tspoof ### ########.fr */
10/* */
11/* ************************************************************************** */
12
13#include "libft.h"
14
15t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *))
16{
17 t_list *new_lst;
18 t_list *new;
19
20 if (!lst || !f || !del)
21 return (NULL);
22 new_lst = NULL;
23 while (lst)
24 {
25 new = ft_lstnew(f(lst->content));
26 if (!new)
27 {
28 ft_lstclear(&new_lst, del);
29 return (NULL);
30 }
31 ft_lstadd_back(&new_lst, new);
32 lst = lst->next;
33 }
34 return (new_lst);
35}
t_list * ft_lstmap(t_list *lst, void *(*f)(void *), void(*del)(void *))
List map.
Definition ft_lstmap.c:15
void ft_lstclear(t_list **lst, void(*del)(void *))
Clear list.
Definition ft_lstclear.c:15
void ft_lstadd_back(t_list **lst, t_list *node)
List add back.
t_list * ft_lstnew(void *content)
Create a new node.
Definition ft_lstnew.c:15
Definition libft.h:22
void * content
Definition libft.h:23
struct s_list * next
Definition libft.h:24
float f
Definition unity.c:1777