|
Defines |
#define | isred(n) (n->red) |
#define | isblack(n) (!isred(n)) |
#define | isleft(n) (n->left) |
#define | isright(n) (!isleft(n)) |
#define | isint(n) (n->internal) |
#define | isext(n) (!isint(n)) |
#define | ishead(n) (n->roothead & 2) |
#define | isroot(n) (n->roothead & 1) |
#define | getlext(n) ((struct jrb_node *)(n->key.v)) |
#define | setlext(node, val) node->key.v = (void *) (val) |
#define | getrext(n) ((struct jrb_node *)(n->val.v)) |
#define | setrext(node, value) node->val.v = (void *) (value) |
#define | setred(n) n->red = 1 |
#define | setblack(n) n->red = 0 |
#define | setleft(n) n->left = 1 |
#define | setright(n) n->left = 0 |
#define | sethead(n) (n->roothead |= 2) |
#define | setroot(n) (n->roothead |= 1) |
#define | setint(n) n->internal = 1 |
#define | setext(n) n->internal = 0 |
#define | setnormal(n) n->roothead = 0 |
#define | sibling(n) ((isleft(n)) ? n->parent->blink : n->parent->flink) |
#define | mk_new_ext(new, kkkey, vvval) |
Functions |
JRB | make_jrb () |
JRB | jrb_find_gte_str (JRB n, char *key, int *fnd) |
JRB | jrb_find_str (JRB n, char *key) |
JRB | jrb_find_gte_int (JRB n, int ikey, int *fnd) |
JRB | jrb_find_int (JRB n, int ikey) |
JRB | jrb_find_gte_dbl (JRB n, double dkey, int *fnd) |
JRB | jrb_find_dbl (JRB n, double dkey) |
JRB | jrb_find_gte_gen (JRB n, Jval key, int(*fxn)(Jval, Jval), int *fnd) |
JRB | jrb_find_gen (JRB n, Jval key, int(*fxn)(Jval, Jval)) |
void | jrb_delete_node (JRB n) |
int | jrb_nblack (JRB n) |
int | jrb_plength (JRB n) |
void | jrb_free_tree (JRB n) |
Jval | jrb_val (JRB n) |
JRB | jrb_insert_str (JRB tree, char *key, Jval val) |
JRB | jrb_insert_int (JRB tree, int ikey, Jval val) |
JRB | jrb_insert_dbl (JRB tree, double dkey, Jval val) |
JRB | jrb_insert_gen (JRB tree, Jval key, Jval val, int(*func)(Jval, Jval)) |