#ifndef LST_H # define LST_H typedef struct s_list { void *content; size_t content_size; struct s_list *next; } t_list; t_list *ft_lstnew(void const *content, size_t content_size); void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)); void ft_lstadd(t_list **alst, t_list *new); void ft_lstiter(t_list *lst, void (*f)(t_list *elem)); t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem)); void ft_lst_sort(t_list **begin_list, int (*cmp)()); void ft_lst_print(t_list *list, void (*printer)()); int ft_lstsize(t_list *lst); void ft_lsteadd(t_list **alst, t_list *new); void ft_lstnadd(t_list **alst, t_list *new, int n); t_list *ft_lstlast(t_list *lst); void ft_lst_sorted_merge(t_list **begin_list1, t_list *begin_list2, int (*cmp)()); void ft_lst_sorted_insert(t_list **begin_list, t_list *insert, int (*cmp)()); t_list *ft_lstnew_range(int a, int b); void ft_lst_delif(t_list **alist, void *data_ref, int (*cmp)(), void (*del)(void *, size_t)); void ft_lst_delsub(t_list **alst, t_list *sub, int (*cmp)(), void (*del)(void *, size_t)); void ft_lst_cfree(void *ptr, size_t size); t_list *ft_lst_filter(t_list *lst, void const *data_ref, t_list *(*f)(t_list *elem, void const *)); t_list *ft_lst_removeif(t_list **alst, void *data_ref, int (*cmp)()); t_list *ft_lst_find(t_list *begin_list, void *data_ref, int (*cmp)()); t_list *ft_lstpop(t_list **lst); void ft_lst_merge(t_list **begin_list1, t_list *begin_list2); void ft_lst_reverse(t_list **begin_list); int ft_diff(void *a, void *b); t_list *ft_id(t_list *a); #endif