Push_swap/s_list.c
2022-01-10 21:34:59 +01:00

58 lines
1.5 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* s_list.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/09 18:46:50 by apommier #+# #+# */
/* Updated: 2022/01/09 18:46:50 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
s_list *new_slist(void *content)
{
s_list *new;
new = (s_list*)malloc(sizeof(s_list));
if (!new)
return (0);
new->action = content;
new->next = 0;
return (new);
}
void s_lstclear(s_list **lst, void (*del)(void*))
{
s_list *chr;
chr = *lst;
while (*lst)
{
chr = (*lst)->next;
del((*lst)->action);
free(*lst);
*lst = chr;
}
lst = 0;
}
void s_lstadd_back(s_list **alst, s_list *new)
{
if (*alst == 0)
*alst = new;
else
ft_lstlast(*alst)->next = new;
}
s_list *s_lstlast(s_list *lst)
{
if (!lst)
return (0);
while (lst->next)
lst = lst->next;
return (lst);
}