Beispiel #1
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list	*lst2;

	if (lst == NULL)
		return (NULL);
	lst2 = f(lst);
	lst2->next = ft_lstmap(lst->next, f);
	return (lst2);
}
Beispiel #2
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list *newlst;

	if (lst)
	{
		newlst = f(lst);
		newlst->next = ft_lstmap(lst->next, f);
		return (newlst);
	}
	return (NULL);
}
Beispiel #3
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list	*result;

	result = NULL;
	if (lst != NULL)
	{
		result = ft_lstmap(lst->next, f);
		ft_lstadd(&result, f(lst));
	}
	return (result);
}
Beispiel #4
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list	*dest;

	dest = ft_lstnew(lst->content, lst->content_size);
	if (!dest)
		return (NULL);
	f(lst);
	if (lst->next)
		dest->next = ft_lstmap(lst->next, f);
	return (dest);
}
Beispiel #5
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list	*newlst;

	if (lst && *f)
	{
		newlst = (*f)(lst);
		if (newlst && lst->next)
			newlst->next = ft_lstmap(lst->next, f);
		return (newlst);
	}
	return (0);
}
Beispiel #6
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list	*l;

	if (!f || !lst)
		return (NULL);
	l = lst;
	if (lst->next)
		lst = ft_lstmap(lst->next, f);
	else
		lst = NULL;
	ft_lstadd(&lst, f(ft_lstnew(l->content, l->content_size)));
	return (lst);
}
Beispiel #7
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list *tmp;

	if (lst)
		tmp = ft_lstnew(lst->content, lst->content_size);
	else
		tmp = NULL;
	if (tmp)
		tmp = f(tmp);
	if (tmp && lst->next)
		tmp->next = ft_lstmap(lst->next, f);
	return (tmp);
}
Beispiel #8
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list	*newlst;

	while (lst != NULL)
	{
		newlst = (t_list *)malloc(sizeof(f(lst)));
		if (!newlst)
			return (NULL);
		newlst = f(lst);
		newlst->next = ft_lstmap(lst->next, f);
		return (newlst);
	}
	return (NULL);
}
static void test1(t_test *test)
{
	t_list	*list;
	t_list	*map;

	bzero((list = malloc(sizeof(t_list))), sizeof(t_list));
	bzero((list->next = malloc(sizeof(t_list))), sizeof(t_list));
	list->content_size = 21;
	list->content = strdup("abc");
	list->next->content_size = 100;
	list->next->content = strdup("abc");
	map = ft_lstmap(list, lstmap_test_fn);
	mt_assert(list->content_size == 21);
	mt_assert(list->next->content_size == 100);
	mt_assert(!!map && map->content_size == 42);
	mt_assert(!!map && map->next->content_size == 200);
}
Beispiel #10
0
t_list	*ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem))
{
	t_list *aux;
	t_list *aux2;
	t_list *map;

	if (lst->next != NULL)
	{
		aux2 = ft_lstmap(lst->next, f);
		if (!aux2)
			return (NULL);
	}
	aux = f(lst);
	map = ft_lstnew(aux->content, aux->content_size);
	if (!map)
		return (NULL);
	if (lst->next != NULL)
		map->next = aux2;
	else
		map->next = NULL;
	return (map);
}