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

Functions

void cdc_treap_clear (struct cdc_treap *t)
 Removes all the elements from the treap. More...
 
enum cdc_stat cdc_treap_insert (struct cdc_treap *t, void *key, void *value, struct cdc_pair_treap_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_treap_insert1 (struct cdc_treap *t, void *key, void *value, struct cdc_treap_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_treap_insert_or_assign (struct cdc_treap *t, void *key, void *value, struct cdc_pair_treap_iter_bool *ret)
 Inserts an element or assigns to the current element if the key already exists. More...
 
enum cdc_stat cdc_treap_insert_or_assign1 (struct cdc_treap *t, void *key, void *value, struct cdc_treap_iter *it, bool *inserted)
 Inserts an element or assigns to the current element if the key already exists. More...
 
size_t cdc_treap_erase (struct cdc_treap *t, void *key)
 Removes the element (if one exists) with the key equivalent to key. More...
 
void cdc_treap_swap (struct cdc_treap *a, struct cdc_treap *b)
 Swaps treaps a and b. This operation is very fast and never fails. More...
 

Detailed Description

Function Documentation

◆ cdc_treap_clear()

void cdc_treap_clear ( struct cdc_treap t)

Removes all the elements from the treap.

Parameters
[in]t- cdc_treap

◆ cdc_treap_insert()

enum cdc_stat cdc_treap_insert ( struct cdc_treap t,
void *  key,
void *  value,
struct cdc_pair_treap_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_treap
[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_treap_insert1()

enum cdc_stat cdc_treap_insert1 ( struct cdc_treap t,
void *  key,
void *  value,
struct cdc_treap_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_treap
[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_treap_insert_or_assign()

enum cdc_stat cdc_treap_insert_or_assign ( struct cdc_treap t,
void *  key,
void *  value,
struct cdc_pair_treap_iter_bool ret 
)

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

Parameters
[in]t- cdc_treap
[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_treap_insert_or_assign1()

enum cdc_stat cdc_treap_insert_or_assign1 ( struct cdc_treap t,
void *  key,
void *  value,
struct cdc_treap_iter it,
bool *  inserted 
)

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

Parameters
[in]t- cdc_treap
[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_treap_erase()

size_t cdc_treap_erase ( struct cdc_treap t,
void *  key 
)

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

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

◆ cdc_treap_swap()

void cdc_treap_swap ( struct cdc_treap a,
struct cdc_treap b 
)

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

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