8.6. list
— Abstract lists¶
Source code: src/collections/list.h
Functions
-
int
list_init
(struct list_t *self_p)¶ Initialize given singly linked list object.
Elements in the list must have a
struct list_elem_t
as their first struct member.An element can only be part of one list at a time.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: List object to initialize.
-
void *
list_peek_head
(struct list_t *self_p)¶ Peek at the first element in the list.
- Return
- First element of the list, or NULL if the list is empty.
- Parameters
self_p
: List object.
-
int
list_add_head
(struct list_t *self_p, void *elem_p)¶ Add given element to the beginning of given list.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: List object.elem_p
: Element to add.
-
int
list_add_tail
(struct list_t *self_p, void *elem_p)¶ Add given element to the end of given list.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: List object.elem_p
: Element to add.
-
void *
list_remove_head
(struct list_t *self_p)¶ Get the first element of given list and then remove it from given list.
- Return
- Removed element, or NULL if the list was empty.
- Parameters
self_p
: List object.
-
void *
list_remove
(struct list_t *self_p, void *elem_p)¶ Remove given element from given list.
- Return
- Removed element, or NULL if the element was not found.
- Parameters
self_p
: List object.elem_p
: Element to remove.
-
int
list_iter_init
(struct list_iter_t *self_p, struct list_t *list_p)¶ Initialize given iterator object.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Iterator to initialize.list_p
: List object to iterate over.
-
void *
list_iter_next
(struct list_iter_t *self_p)¶ Get the next element from given iterator object.
- Return
- Next element, or NULL on end of list.
- Parameters
self_p
: Iterator object.
-
struct
list_elem_t
¶ - #include <list.h>
Singly linked list elements must have this struct as their first member.
Public Members
-
struct list_elem_t *
next_p
¶
-
struct list_elem_t *
-
struct
list_t
¶ - #include <list.h>
A singly linked list.
-
struct
list_iter_t
¶ - #include <list.h>
A singly linked list iterator.
Public Members
-
struct list_elem_t *
next_p
¶
-
struct list_elem_t *