cdcontainers  0.1.1
Library of data containers and collections for C programming language.
Functions
Modifiers

Functions

void cdc_avl_tree_clear (struct cdc_avl_tree *t)
 Removes all the elements from the avl_tree. More...
 
enum cdc_stat cdc_avl_tree_insert (struct cdc_avl_tree *t, void *key, void *value, struct cdc_pair_avl_tree_iter_bool *ret)
 Inserts an element into the container, if the container doesn't already contain an element with an equivalent key. More...
 
enum cdc_stat cdc_avl_tree_insert1 (struct cdc_avl_tree *t, void *key, void *value, struct cdc_avl_tree_iter *it, bool *inserted)
 Inserts an element into the container, if the container doesn't already contain an element with an equivalent key. More...
 
enum cdc_stat cdc_avl_tree_insert_or_assign (struct cdc_avl_tree *t, void *key, void *value, struct cdc_pair_avl_tree_iter_bool *ret)
 Inserts an element or assigns to the current element if the key already exists. More...
 
enum cdc_stat cdc_avl_tree_insert_or_assign1 (struct cdc_avl_tree *t, void *key, void *value, struct cdc_avl_tree_iter *it, bool *inserted)
 Inserts an element or assigns to the current element if the key already exists. More...
 
size_t cdc_avl_tree_erase (struct cdc_avl_tree *t, void *key)
 Removes the element (if one exists) with the key equivalent to key. More...
 
void cdc_avl_tree_swap (struct cdc_avl_tree *a, struct cdc_avl_tree *b)
 Swaps avl_trees a and b. This operation is very fast and never fails. More...
 

Detailed Description

Function Documentation

◆ cdc_avl_tree_clear()

void cdc_avl_tree_clear ( struct cdc_avl_tree t)

Removes all the elements from the avl_tree.

Parameters
[in]t- cdc_avl_tree

◆ cdc_avl_tree_insert()

enum cdc_stat cdc_avl_tree_insert ( struct cdc_avl_tree t,
void *  key,
void *  value,
struct cdc_pair_avl_tree_iter_bool ret 
)

Inserts an element into the container, if the container doesn't already contain an element with an equivalent key.

Parameters
[in]t- cdc_avl_tree
[in]key- key of the element
[in]value- value of the element
[out]ret- pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place. The pointer can be equal to NULL.
Returns
CDC_STATUS_OK in a successful case or other value indicating an error.

◆ cdc_avl_tree_insert1()

enum cdc_stat cdc_avl_tree_insert1 ( struct cdc_avl_tree t,
void *  key,
void *  value,
struct cdc_avl_tree_iter it,
bool *  inserted 
)

Inserts an element into the container, if the container doesn't already contain an element with an equivalent key.

Parameters
[in]t- cdc_avl_tree
[in]key- key of the element
[in]value- value of the element
[out]it- iterator to the inserted element (or to the element that prevented the insertion). The pointer can be equal to NULL.
[out]inserted- bool denoting whether the insertion took place. The pointer can be equal to NULL.
Returns
CDC_STATUS_OK in a successful case or other value indicating an error.

◆ cdc_avl_tree_insert_or_assign()

enum cdc_stat cdc_avl_tree_insert_or_assign ( struct cdc_avl_tree t,
void *  key,
void *  value,
struct cdc_pair_avl_tree_iter_bool ret 
)

Inserts an element or assigns to the current element if the key already exists.

Parameters
[in]t- cdc_avl_tree
[in]key- key of the element
[in]value- value of the element
[out]ret- pair. The bool component is true if the insertion took place and false if the assignment took place. The iterator component is pointing at the element that was inserted or updated.
Returns
CDC_STATUS_OK in a successful case or other value indicating an error.

◆ cdc_avl_tree_insert_or_assign1()

enum cdc_stat cdc_avl_tree_insert_or_assign1 ( struct cdc_avl_tree t,
void *  key,
void *  value,
struct cdc_avl_tree_iter it,
bool *  inserted 
)

Inserts an element or assigns to the current element if the key already exists.

Parameters
[in]t- cdc_avl_tree
[in]key- key of the element
[in]value- value of the element
[out]it- iterator is pointing at the element that was inserted or updated. The pointer can be equal to NULL
[out]inserted- bool is true if the insertion took place and false if the assignment took place. The pointer can be equal to NULL
Returns
CDC_STATUS_OK in a successful case or other value indicating an error.

◆ cdc_avl_tree_erase()

size_t cdc_avl_tree_erase ( struct cdc_avl_tree t,
void *  key 
)

Removes the element (if one exists) with the key equivalent to key.

Parameters
[in]t- cdc_avl_tree
[in]key- key value of the elements to remove
Returns
number of elements removed.

◆ cdc_avl_tree_swap()

void cdc_avl_tree_swap ( struct cdc_avl_tree a,
struct cdc_avl_tree b 
)

Swaps avl_trees a and b. This operation is very fast and never fails.

Parameters
[in,out]a- cdc_avl_tree
[in,out]b- cdc_avl_tree