From e108eea9d5b6846a9c1e227db1bcb4e15aebaab1 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Tue, 26 Jul 2022 18:16:18 -0300 Subject: linked_list: Add `linked_list` type. This is a type generic doubly linked list implementation. I used the implementation from DevkitPro's libnds library as a baseline. Link to libnds implementation: https://github.com/devkitPro/libnds/blob/master/source/arm9/linkedlist.c --- linked_list.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 linked_list.h (limited to 'linked_list.h') diff --git a/linked_list.h b/linked_list.h new file mode 100644 index 0000000..643e4f2 --- /dev/null +++ b/linked_list.h @@ -0,0 +1,18 @@ +#ifndef LINKED_LIST_H +#define LINKED_LIST_H + +typedef struct linked_list linked_list; + +struct linked_list { + linked_list *next; /* Next node in the list. */ + linked_list *prev; /* Previous node in the list. */ + void *data; /* Pointer to data. */ +}; + +extern linked_list *add_node(linked_list **tail, void *data); +extern void remove_node(linked_list *node); +extern linked_list *get_head(linked_list *node); +extern linked_list *get_tail(linked_list *node); +extern int linked_list_size(linked_list *tail); + +#endif -- cgit v1.2.3-13-gbd6f