summaryrefslogtreecommitdiff
path: root/src/ll.h
diff options
context:
space:
mode:
author@syxhe <https://t.me/syxhe>2025-03-24 17:37:10 -0500
committer@syxhe <https://t.me/syxhe>2025-03-24 17:37:10 -0500
commit4d02dcea167d7f45118510ff87217d590456c720 (patch)
tree99eb4b45c11774f4e7acca0419818a0ea0cd7da4 /src/ll.h
parent586a95dde36c1d4f1dfd2b7590db87f6d9d55d12 (diff)
Rewrite the whole linked list implementation so it's not shit
Diffstat (limited to 'src/ll.h')
-rw-r--r--src/ll.h24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/ll.h b/src/ll.h
index 6e79ccd..6e4ccf9 100644
--- a/src/ll.h
+++ b/src/ll.h
@@ -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> 4typedef int (*dll_freecb)(void*);
5typedef struct dlinked dlinkedlist;
5 6
6typedef int (*dlinkedlist_freecallback)(void*); 7dlinkedlist* dlinkedlist_init(void);
7typedef struct dlinkedlist dlinkedlist;
8
9dlinkedlist * dlinkedlist_init(void);
10int dlinkedlist_free(dlinkedlist **ll); 8int dlinkedlist_free(dlinkedlist **ll);
9int dlinkedlist_append(dlinkedlist * const ll, void *data, dll_freecb fcb);
10int dlinkedlist_prepend(dlinkedlist * const ll, void *data, dll_freecb fcb);
11int dlinkedlist_insert(dlinkedlist * const ll, void *data, dll_freecb fcb, int index);
12void* dlinkedlist_get(const dlinkedlist * const ll, int index);
13int dlinkedlist_remove(dlinkedlist * const ll, int index);
11 14
12int dlinkedlist_insert(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); 15int dlinkedlist_size(const dlinkedlist * const ll);
13int dlinkedlist_append(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); 16#define dlinkedlist_isempty(ll) (dlinkedlist_size((ll)) == 0)
14void *dlinkedlist_get(const dlinkedlist * const ll, size_t index);
15void *dlinkedlist_getfirst(const dlinkedlist * const ll);
16void *dlinkedlist_getlast(const dlinkedlist * const ll);
17int dlinkedlist_remove(dlinkedlist * const ll, size_t index);
18
19size_t dlinkedlist_size(const dlinkedlist * const ll);
20int dlinkedlist_isempty(const dlinkedlist * const ll);
21 17
22#endif \ No newline at end of file 18#endif \ No newline at end of file