StudyPlanner/src/llist.h

30 lines
835 B
C
Raw Normal View History

#ifndef LLIST
#define LLIST
#include <stdbool.h>
typedef struct llist {
void *data;
struct llist *next;
struct llist *prev;
struct llist *tail;
2024-12-12 16:08:19 +01:00
int (*cmpFn)(const void *a, const void *b); // function that compares data
} llist;
// create new linked list with content(void* data) and cmpFN
2024-12-12 16:08:19 +01:00
llist *llistNew(void *data, int (*cmpFN)(const void *a, const void *b));
// create new node with data and append to tail of head
llist *llistAppend(llist *head, void *data);
// return llistNode that contains key or NULL
llist *llistGet(llist *head, void *key);
// TURE if llist contains key
bool llistContains(llist *head, void *key);
// free llist node (Does Not free data it contains!!)
void llistFree(llist *head);
2024-12-12 16:08:19 +01:00
// count llistLen
int llistLen(llist *head);
void llistPrintT(llist *head);
void llistPrintH(llist *head);
#endif