diff --git a/ds.c b/ds.c index 79b4262..c9d97cc 100644 --- a/ds.c +++ b/ds.c @@ -3,6 +3,18 @@ #include "ds.h" +ds_sll_t +*ds_sll_init(void) +{ + return ds_sll_new_node(NULL); +} + +ds_dll_t +*ds_dll_init(void) +{ + return ds_dll_new_node(NULL); +} + ds_sll_t *ds_sll_new_node(void *data) { diff --git a/ds.h b/ds.h index 58ff04e..a8fbb3f 100644 --- a/ds.h +++ b/ds.h @@ -24,6 +24,20 @@ typedef struct { #define ds_ll_foreach(t, ll) for (t *cur = ll; cur; cur = cur->next) +/** + * @brief initialize a new singly linked list + * + * @return the new linked list + */ +ds_sll_t *ds_sll_init(void); + +/** + * @brief initialize a new doubly linked list + * + * @return the new linked list + */ +ds_dll_t *ds_dll_init(void); + /** * @brief create a new allocated node for a singly linked list *