8.5. list — Abstract lists

Source code: src/collections/list.h


Defines

LIST_SL_INIT(list_p)

Initialize given singly linked list object.

Parameters
  • list_p: List object to initialize.

LIST_SL_INIT_STRUCT
LIST_SL_PEEK_HEAD(list_p, element_pp)

Peek at the first element in the list.

Parameters
  • list_p: List object.
  • element_pp: First element of the list.

LIST_SL_ADD_HEAD(list_p, element_p)

Add given element to the beginning of given list.

Parameters
  • list_p: List object.
  • element_p: Element to add.

LIST_SL_ADD_TAIL(list_p, element_p)

Add given element to the end of given list.

Parameters
  • list_p: List object.
  • element_p: Element to add.

LIST_SL_REMOVE_HEAD(list_p, element_pp)

Get the first element of given list and then remove it from given list.

Parameters
  • list_p: List object.
  • element_pp: First element of the list.

LIST_SL_ITERATOR_INIT(iterator_p, list_p)

Initialize given iterator object.

Parameters
  • iterator_p: Iterator to initialize.
  • list_p: List object to iterate over.

LIST_SL_ITERATOR_NEXT(iterator_p, element_pp)

Get the next element from given iterator object.

Parameters
  • iterator_p: Iterator object.
  • element_pp: Next element of the list.

LIST_SL_REMOVE_ELEM(list_p, iterator_p, element_p, iterator_element_p, previous_element_p)

Remove given element from given list.

Parameters
  • list_p: List object.
  • iterator_p: Used internally.
  • element_p: Used internally.
  • iterator_element_p: Used internally.
  • previous_element_p: Used internally.

struct
#include <list.h>

Public Members

void *list_next_t::next_p
struct

Public Members

void *list_singly_linked_t::head_p
void *list_singly_linked_t::tail_p
struct

Public Members

void *list_sl_iterator_t::next_p