2026-02-12 10:47:46 -06:00
|
|
|
#ifndef LINKEDLIST_H
|
|
|
|
|
#define LINKEDLIST_H
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
typedef struct LinkedList LinkedList;
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
LLIST_OK = 0,
|
|
|
|
|
LLIST_ALLOC,
|
|
|
|
|
LLIST_NULL,
|
|
|
|
|
LLIST_NULL_ARG,
|
|
|
|
|
LLIST_OUT_OF_BOUNDS,
|
|
|
|
|
LLIST_INVALID_SIZE,
|
|
|
|
|
} LinkedListErr;
|
|
|
|
|
|
|
|
|
|
LinkedListErr linkedlist_create(LinkedList **out, size_t elem_size);
|
|
|
|
|
LinkedListErr linkedlist_destroy(LinkedList *ll);
|
|
|
|
|
|
|
|
|
|
LinkedListErr linkedlist_append(LinkedList *ll, void *data);
|
|
|
|
|
LinkedListErr linkedlist_delete(LinkedList *ll, size_t index);
|
|
|
|
|
LinkedListErr linkedlist_pop(LinkedList *ll, size_t index, void *out);
|
|
|
|
|
LinkedListErr linkedlist_insert(LinkedList *ll, size_t index, void *out);
|
|
|
|
|
LinkedListErr linkedlist_get(const LinkedList *ll, size_t index, void *out);
|
2026-02-12 13:08:05 -06:00
|
|
|
LinkedListErr linkedlist_len(const LinkedList *ll, size_t *out);
|
2026-02-12 10:47:46 -06:00
|
|
|
|
|
|
|
|
#endif /* ifndef LINKEDLIST_H */
|