acc/include/util/linklist.h
2023-02-07 21:32:38 +08:00

32 lines
741 B
C

#ifndef ACC_UTIL_LINKLIST_H
#define ACC_UTIL_LINKLIST_H
struct llist_node {
void *val;
struct llist_node *nxt;
};
struct linklist {
int length;
struct llist_node *head;
struct llist_node *tail;
};
struct llist_node* llist_createnode(void *val);
void llist_init(struct linklist *l);
void llist_free(struct linklist *l);
void llist_free_full(struct linklist *l);
void llist_pushback(struct linklist *l, void *val);
void llist_pushback_notnull(struct linklist *l, void *val);
void* llist_get(struct linklist *l, int x);
void llist_set(struct linklist *l, int x, void *val);
void llist_insert(struct linklist *l, int x, void *val);
void* llist_popfront(struct linklist *l);
void* llist_remove(struct linklist *l, int index);
#endif