42-archive/libft/includes/lst.h
2016-10-28 21:23:13 +02:00

40 lines
1.5 KiB
C

#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