28 lines
568 B
C
28 lines
568 B
C
#ifndef __LL_H__
|
|
#define __LL_H__
|
|
|
|
typedef struct s_li
|
|
{
|
|
void *data;
|
|
struct s_li *next;
|
|
} li;
|
|
|
|
typedef struct s_ll
|
|
{
|
|
li *head;
|
|
li *end;
|
|
li *current;
|
|
} linked_list;
|
|
|
|
linked_list *ll_init();
|
|
void ll_done(linked_list *l);
|
|
li *ll_push(linked_list *l, void *data);
|
|
void ll_delete(linked_list *l, void *data);
|
|
void *ll_pop(linked_list *l);
|
|
void ll_iterate(linked_list *l, int(*func)(void *));
|
|
void ll_reset(linked_list *l);
|
|
void *ll_next(linked_list *l);
|
|
int ll_size(linked_list *l);
|
|
int ll_contains(linked_list *l, void *search);
|
|
|
|
#endif /* __LL_H__ */
|