8.5. list — Abstract lists

Source code: src/collections/list.h


Version
7.0.0

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 list_next_t

Public Members

void *next_p
struct list_singly_linked_t

Public Members

void *head_p
void *tail_p
struct list_sl_iterator_t

Public Members

void *next_p