My Project
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
rbtree.h File Reference
#include <stdint.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  rbtree_node
 
struct  rbtree
 

Macros

#define rbtree_item(ptr, type, member)   ((type*)(((char*)ptr) - offsetof(type, member)))
 

Typedefs

typedef struct rbtree rbtree_t
 
typedef struct rbtree_node rbtree_node_t
 
typedef void(* rbtree_node_destructor_t )(rbtree_node_t *Node)
 
typedef int(* rbtree_node_comparator_t )(const rbtree_node_t *lhs, const rbtree_node_t *rhs)
 

Functions

void rbtree_init (rbtree_t *tree, rbtree_node_comparator_t comparator)
 
int rbtree_empty (const rbtree_t *tree)
 
size_t rbtree_size (const rbtree_t *tree)
 
 __attribute__ ((warn_unused_result)) rbtree_node_t *rbtree_insert(rbtree_t *tree
 
void rbtree_insert_multi (rbtree_t *tree, rbtree_node_t *node)
 
rbtree_node_trbtree_find (const rbtree_t *tree, const rbtree_node_t *node)
 
rbtree_node_trbtree_min (const rbtree_t *tree)
 
rbtree_node_trbtree_max (const rbtree_t *tree)
 
rbtree_node_trbtree_node_next (const rbtree_node_t *node)
 
rbtree_node_trbtree_node_prev (const rbtree_node_t *node)
 
rbtree_node_trbtree_remove (rbtree_t *tree, rbtree_node_t *node, rbtree_node_destructor_t destructor)
 
void rbtree_clear (rbtree_t *tree, rbtree_node_destructor_t destructor)
 

Variables

rbtree_node_tnode
 

Macro Definition Documentation

#define rbtree_item (   ptr,
  type,
  member 
)    ((type*)(((char*)ptr) - offsetof(type, member)))

Definition at line 6 of file rbtree.h.

Typedef Documentation

typedef int(* rbtree_node_comparator_t)(const rbtree_node_t *lhs, const rbtree_node_t *rhs)

Definition at line 13 of file rbtree.h.

typedef void(* rbtree_node_destructor_t)(rbtree_node_t *Node)

Definition at line 12 of file rbtree.h.

Definition at line 10 of file rbtree.h.

Definition at line 9 of file rbtree.h.

Function Documentation

__attribute__ ( (warn_unused_result)  )
void rbtree_clear ( rbtree_t tree,
rbtree_node_destructor_t  destructor 
)

Definition at line 5 of file rbtree_clear.c.

int rbtree_empty ( const rbtree_t tree)

Definition at line 4 of file rbtree_empty.c.

rbtree_node_t* rbtree_find ( const rbtree_t tree,
const rbtree_node_t node 
)

Definition at line 5 of file rbtree_find.c.

void rbtree_init ( rbtree_t tree,
rbtree_node_comparator_t  comparator 
)

Definition at line 4 of file rbtree_init.c.

void rbtree_insert_multi ( rbtree_t tree,
rbtree_node_t node 
)

Definition at line 92 of file rbtree_insert.c.

rbtree_node_t* rbtree_max ( const rbtree_t tree)

Definition at line 30 of file rbtree_minmax.c.

rbtree_node_t* rbtree_min ( const rbtree_t tree)

Definition at line 20 of file rbtree_minmax.c.

rbtree_node_t* rbtree_node_next ( const rbtree_node_t node)

Definition at line 32 of file rbtree_iterator.c.

rbtree_node_t* rbtree_node_prev ( const rbtree_node_t node)

Definition at line 38 of file rbtree_iterator.c.

rbtree_node_t* rbtree_remove ( rbtree_t tree,
rbtree_node_t node,
rbtree_node_destructor_t  destructor 
)

Definition at line 59 of file rbtree_remove.c.

size_t rbtree_size ( const rbtree_t tree)

Definition at line 4 of file rbtree_size.c.

Variable Documentation

Definition at line 45 of file rbtree.h.