libdict
Data Structure C Library
Loading...
Searching...
No Matches
tree_common.h File Reference
#include "dict.h"
Include dependency graph for tree_common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  tree_node_base
 
struct  tree_base
 

Macros

#define TREE_NODE_FIELDS(node_type)
 
#define TREE_FIELDS(node_type)
 
#define TREE_ITERATOR_FIELDS(tree_type, node_type)
 

Typedefs

typedef struct tree_node_base tree_node_base
 
typedef struct tree_base tree_base
 

Functions

void tree_node_rot_left (void *tree, void *node)
 
void tree_node_rot_right (void *tree, void *node)
 
void * tree_node_prev (void *node)
 
void * tree_node_next (void *node)
 
void * tree_node_min (void *node)
 
void * tree_node_max (void *node)
 
void ** tree_search (void *tree, const void *key)
 
void * tree_search_node (void *tree, const void *key)
 
void ** tree_search_le (void *tree, const void *key)
 
void * tree_search_le_node (void *tree, const void *key)
 
void ** tree_search_lt (void *tree, const void *key)
 
void * tree_search_lt_node (void *tree, const void *key)
 
void ** tree_search_ge (void *tree, const void *key)
 
void * tree_search_ge_node (void *tree, const void *key)
 
void ** tree_search_gt (void *tree, const void *key)
 
void * tree_search_gt_node (void *tree, const void *key)
 
size_t tree_traverse (void *tree, dict_visit_func visit, void *user_data)
 
bool tree_select (void *tree, size_t n, const void **key, void **datum)
 
size_t tree_count (const void *tree)
 
size_t tree_clear (void *tree, dict_delete_func delete_func)
 
size_t tree_free (void *tree, dict_delete_func delete_func)
 
size_t tree_min_path_length (const void *tree)
 
size_t tree_max_path_length (const void *tree)
 
size_t tree_total_path_length (const void *tree)
 
bool tree_iterator_valid (const void *iterator)
 
void tree_iterator_invalidate (void *iterator)
 
void tree_iterator_free (void *iterator)
 
bool tree_iterator_next (void *iterator)
 
bool tree_iterator_prev (void *iterator)
 
bool tree_iterator_nextn (void *iterator, size_t count)
 
bool tree_iterator_prevn (void *iterator, size_t count)
 
bool tree_iterator_first (void *iterator)
 
bool tree_iterator_last (void *iterator)
 
bool tree_iterator_search (void *iterator, const void *key)
 
bool tree_iterator_search_le (void *iterator, const void *key)
 
bool tree_iterator_search_lt (void *iterator, const void *key)
 
bool tree_iterator_search_ge (void *iterator, const void *key)
 
bool tree_iterator_search_gt (void *iterator, const void *key)
 
int tree_iterator_compare (const void *iterator1, const void *iterator2)
 
const void * tree_iterator_key (const void *iterator)
 
void ** tree_iterator_datum (void *iterator)
 

Macro Definition Documentation

◆ TREE_FIELDS

#define TREE_FIELDS ( node_type)
Value:
node_type* root; \
size_t count; \
dict_compare_func cmp_func; \
size_t rotation_count
int(* dict_compare_func)(const void *, const void *)
Definition dict.h:54

Definition at line 44 of file tree_common.h.

◆ TREE_ITERATOR_FIELDS

#define TREE_ITERATOR_FIELDS ( tree_type,
node_type )
Value:
tree_type* tree; \
node_type* node

Definition at line 54 of file tree_common.h.

◆ TREE_NODE_FIELDS

#define TREE_NODE_FIELDS ( node_type)
Value:
void* key; \
void* datum; \
node_type* parent; \
node_type* llink; \
node_type* rlink

Definition at line 33 of file tree_common.h.

Typedef Documentation

◆ tree_base

typedef struct tree_base tree_base

◆ tree_node_base

typedef struct tree_node_base tree_node_base

Function Documentation

◆ tree_clear()

size_t tree_clear ( void * tree,
dict_delete_func delete_func )

Definition at line 301 of file tree_common.c.

◆ tree_count()

size_t tree_count ( const void * tree)

Definition at line 295 of file tree_common.c.

◆ tree_free()

size_t tree_free ( void * tree,
dict_delete_func delete_func )

Definition at line 324 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_compare()

int tree_iterator_compare ( const void * iterator1,
const void * iterator2 )

Definition at line 486 of file tree_common.c.

◆ tree_iterator_datum()

void ** tree_iterator_datum ( void * iterator)

Definition at line 506 of file tree_common.c.

◆ tree_iterator_first()

bool tree_iterator_first ( void * iterator)

Definition at line 437 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_free()

void tree_iterator_free ( void * iterator)

Definition at line 389 of file tree_common.c.

◆ tree_iterator_invalidate()

void tree_iterator_invalidate ( void * iterator)

Definition at line 383 of file tree_common.c.

◆ tree_iterator_key()

const void * tree_iterator_key ( const void * iterator)

Definition at line 499 of file tree_common.c.

◆ tree_iterator_last()

bool tree_iterator_last ( void * iterator)

Definition at line 444 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_next()

bool tree_iterator_next ( void * iterator)

Definition at line 397 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_nextn()

bool tree_iterator_nextn ( void * iterator,
size_t count )

Definition at line 419 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_prev()

bool tree_iterator_prev ( void * iterator)

Definition at line 408 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_prevn()

bool tree_iterator_prevn ( void * iterator,
size_t count )

Definition at line 428 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_search()

bool tree_iterator_search ( void * iterator,
const void * key )

Definition at line 451 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_search_ge()

bool tree_iterator_search_ge ( void * iterator,
const void * key )

Definition at line 472 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_search_gt()

bool tree_iterator_search_gt ( void * iterator,
const void * key )

Definition at line 479 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_search_le()

bool tree_iterator_search_le ( void * iterator,
const void * key )

Definition at line 458 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_search_lt()

bool tree_iterator_search_lt ( void * iterator,
const void * key )

Definition at line 465 of file tree_common.c.

Here is the call graph for this function:

◆ tree_iterator_valid()

bool tree_iterator_valid ( const void * iterator)

Definition at line 377 of file tree_common.c.

◆ tree_max_path_length()

size_t tree_max_path_length ( const void * tree)

Definition at line 355 of file tree_common.c.

◆ tree_min_path_length()

size_t tree_min_path_length ( const void * tree)

Definition at line 340 of file tree_common.c.

◆ tree_node_max()

void * tree_node_max ( void * node)

Definition at line 117 of file tree_common.c.

◆ tree_node_min()

void * tree_node_min ( void * node)

Definition at line 106 of file tree_common.c.

◆ tree_node_next()

void * tree_node_next ( void * node)

Definition at line 92 of file tree_common.c.

Here is the call graph for this function:

◆ tree_node_prev()

void * tree_node_prev ( void * node)

Definition at line 78 of file tree_common.c.

Here is the call graph for this function:

◆ tree_node_rot_left()

void tree_node_rot_left ( void * tree,
void * node )

Definition at line 46 of file tree_common.c.

◆ tree_node_rot_right()

void tree_node_rot_right ( void * tree,
void * node )

Definition at line 62 of file tree_common.c.

◆ tree_search()

void ** tree_search ( void * tree,
const void * key )

Definition at line 144 of file tree_common.c.

Here is the call graph for this function:

◆ tree_search_ge()

void ** tree_search_ge ( void * tree,
const void * key )

Definition at line 221 of file tree_common.c.

Here is the call graph for this function:

◆ tree_search_ge_node()

void * tree_search_ge_node ( void * tree,
const void * key )

Definition at line 201 of file tree_common.c.

◆ tree_search_gt()

void ** tree_search_gt ( void * tree,
const void * key )

Definition at line 245 of file tree_common.c.

Here is the call graph for this function:

◆ tree_search_gt_node()

void * tree_search_gt_node ( void * tree,
const void * key )

Definition at line 228 of file tree_common.c.

◆ tree_search_le()

void ** tree_search_le ( void * tree,
const void * key )

Definition at line 170 of file tree_common.c.

Here is the call graph for this function:

◆ tree_search_le_node()

void * tree_search_le_node ( void * tree,
const void * key )

Definition at line 151 of file tree_common.c.

◆ tree_search_lt()

void ** tree_search_lt ( void * tree,
const void * key )

Definition at line 194 of file tree_common.c.

Here is the call graph for this function:

◆ tree_search_lt_node()

void * tree_search_lt_node ( void * tree,
const void * key )

Definition at line 177 of file tree_common.c.

◆ tree_search_node()

void * tree_search_node ( void * tree,
const void * key )

Definition at line 128 of file tree_common.c.

◆ tree_select()

bool tree_select ( void * tree,
size_t n,
const void ** key,
void ** datum )

Definition at line 270 of file tree_common.c.

Here is the call graph for this function:

◆ tree_total_path_length()

size_t tree_total_path_length ( const void * tree)

Definition at line 370 of file tree_common.c.

◆ tree_traverse()

size_t tree_traverse ( void * tree,
dict_visit_func visit,
void * user_data )

Definition at line 252 of file tree_common.c.

Here is the call graph for this function: