diff options
Diffstat (limited to 'src/ll.h')
| -rw-r--r-- | src/ll.h | 24 |
1 files changed, 10 insertions, 14 deletions
| @@ -1,22 +1,18 @@ | |||
| 1 | #ifndef __VXGG_REWRITE___LL_H___305861098005___ | 1 | #ifndef __VXGG_REWRITE___LL_H___305861098005___ |
| 2 | #define __VXGG_REWRITE___LL_H___305861098005___ | 2 | #define __VXGG_REWRITE___LL_H___305861098005___ |
| 3 | 3 | ||
| 4 | #include <stddef.h> | 4 | typedef int (*dll_freecb)(void*); |
| 5 | typedef struct dlinked dlinkedlist; | ||
| 5 | 6 | ||
| 6 | typedef int (*dlinkedlist_freecallback)(void*); | 7 | dlinkedlist* dlinkedlist_init(void); |
| 7 | typedef struct dlinkedlist dlinkedlist; | ||
| 8 | |||
| 9 | dlinkedlist * dlinkedlist_init(void); | ||
| 10 | int dlinkedlist_free(dlinkedlist **ll); | 8 | int dlinkedlist_free(dlinkedlist **ll); |
| 9 | int dlinkedlist_append(dlinkedlist * const ll, void *data, dll_freecb fcb); | ||
| 10 | int dlinkedlist_prepend(dlinkedlist * const ll, void *data, dll_freecb fcb); | ||
| 11 | int dlinkedlist_insert(dlinkedlist * const ll, void *data, dll_freecb fcb, int index); | ||
| 12 | void* dlinkedlist_get(const dlinkedlist * const ll, int index); | ||
| 13 | int dlinkedlist_remove(dlinkedlist * const ll, int index); | ||
| 11 | 14 | ||
| 12 | int dlinkedlist_insert(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); | 15 | int dlinkedlist_size(const dlinkedlist * const ll); |
| 13 | int dlinkedlist_append(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); | 16 | #define dlinkedlist_isempty(ll) (dlinkedlist_size((ll)) == 0) |
| 14 | void *dlinkedlist_get(const dlinkedlist * const ll, size_t index); | ||
| 15 | void *dlinkedlist_getfirst(const dlinkedlist * const ll); | ||
| 16 | void *dlinkedlist_getlast(const dlinkedlist * const ll); | ||
| 17 | int dlinkedlist_remove(dlinkedlist * const ll, size_t index); | ||
| 18 | |||
| 19 | size_t dlinkedlist_size(const dlinkedlist * const ll); | ||
| 20 | int dlinkedlist_isempty(const dlinkedlist * const ll); | ||
| 21 | 17 | ||
| 22 | #endif \ No newline at end of file | 18 | #endif \ No newline at end of file |
