Go to the source code of this file.
Defines |
#define | _RDT_TREE_H |
#define | RBT_HEAD_INIT(__header) |
#define | RBT_COUNT(__header) ((__header)->rbt_num_node) |
#define | RBT_RIGHTMOST(__header) ((__header)->rightmost) |
#define | RBT_LEFTMOST(__header) ((__header)->leftmost) |
#define | RBT_VALUE(__node) ((__node)->rbt_value) |
#define | RBT_OPAQ(__node) ((__node)->rbt_opaq) |
#define | RBT_INCREMENT(__node) |
#define | RBT_DECREMENT(__node) |
#define | RBT_LOOP(__header, __it) for ((__it) = (__header)->leftmost; (__it);) |
#define | RBT_LOOP_REVERSE(__header, __it) for ((__it) = (__header)->rightmost; (__it);) |
#define | RBT_ROTATE_LEFT(__xx) |
#define | RBT_ROTATE_RIGHT(__xx) |
#define | RBT_INSERT(__header, __node, __par) |
#define | RBT_UNLINK(__header, __node) |
#define | RBT_FIND(__header, __node, __val) |
#define | RBT_FIND_LEFT(__header, __node, __val) |
#define | RBT_BLACK_COUNT(__node, __sum) |
#define | RBT_VERIFY(__header, __it, __error) |
Define Documentation
#define RBT_BLACK_COUNT |
( |
|
__node, |
|
|
|
__sum |
|
) |
| |
Value:{ \
for ((__sum) = 0; (__node); (__node) = (__node)->parent) { \
if (!((__node)->rbt_flags & RBT_RED)) \
++(__sum); \
} \
}
Definition at line 577 of file rbt_tree.h.
#define RBT_COUNT |
( |
|
__header | ) |
((__header)->rbt_num_node) |
#define RBT_DECREMENT |
( |
|
__node | ) |
|
Value:{ \
if ((__node)->left) { \
__node = (__node)->left; \
while ((__node)->next) \
(__node) = (__node)->next; \
} else { \
struct rbt_node *__x; \
do { \
__x = (__node); \
} while ((((__node) = (__node)->parent)) && ((__node)->left == __x)); \
} \
}
Definition at line 149 of file rbt_tree.h.
#define RBT_FIND |
( |
|
__header, |
|
|
|
__node, |
|
|
|
__val |
|
) |
| |
Value:{ \
struct rbt_node *__x; \
(__node) = (__header)->root; \
__x = (__header)->root; \
while (__x) { \
(__node) = __x; \
if (__x->rbt_value > (__val)) { \
__x = __x->left; \
} else if (__x->rbt_value < (__val)) { \
__x = __x->next; \
} else { \
break; \
} \
} \
}
Definition at line 504 of file rbt_tree.h.
#define RBT_FIND_LEFT |
( |
|
__header, |
|
|
|
__node, |
|
|
|
__val |
|
) |
| |
Value:{ \
struct rbt_node *__x; \
(__node) = 0; \
__x = (__header)->root; \
while (__x) { \
if (__x->rbt_value > (__val)) { \
__x = __x->left; \
} else if (__x->rbt_value < (__val)) { \
__x = __x->next; \
} else { \
(__node) = __x; \
while (__x) { \
while ((__x = __x->left)) { \
if (__x->rbt_value < (__val)) \
break; \
(__node) = __x; \
} \
if (__x == 0) \
break; \
while ((__x = __x->next)) { \
if (__x->rbt_value == (__val)) { \
(__node) = __x; \
break; \
} \
} \
} \
break; \
} \
} \
}
Definition at line 542 of file rbt_tree.h.
#define RBT_HEAD_INIT |
( |
|
__header | ) |
|
Value:((__header)->root = 0, \
(__header)->leftmost = 0, \
(__header)->rightmost = 0, \
(__header)->rbt_num_node = 0)
Definition at line 105 of file rbt_tree.h.
#define RBT_INCREMENT |
( |
|
__node | ) |
|
Value:{ \
if ((__node)->next) { \
__node = (__node)->next; \
while ((__node)->left) \
(__node) = (__node)->left; \
} else { \
struct rbt_node *__x; \
do { \
__x = (__node); \
} while ((((__node) = (__node)->parent)) && ((__node)->next == __x)); \
} \
}
Definition at line 135 of file rbt_tree.h.
#define RBT_INSERT |
( |
|
__header, |
|
|
|
__node, |
|
|
|
__par |
|
) |
| |
#define RBT_LEFTMOST |
( |
|
__header | ) |
((__header)->leftmost) |
#define RBT_LOOP |
( |
|
__header, |
|
|
|
__it |
|
) |
| for ((__it) = (__header)->leftmost; (__it);) |
#define RBT_LOOP_REVERSE |
( |
|
__header, |
|
|
|
__it |
|
) |
| for ((__it) = (__header)->rightmost; (__it);) |
#define RBT_OPAQ |
( |
|
__node | ) |
((__node)->rbt_opaq) |
#define RBT_RIGHTMOST |
( |
|
__header | ) |
((__header)->rightmost) |
#define RBT_ROTATE_LEFT |
( |
|
__xx | ) |
|
#define RBT_ROTATE_RIGHT |
( |
|
__xx | ) |
|
#define RBT_UNLINK |
( |
|
__header, |
|
|
|
__node |
|
) |
| |
#define RBT_VALUE |
( |
|
__node | ) |
((__node)->rbt_value) |
#define RBT_VERIFY |
( |
|
__header, |
|
|
|
__it, |
|
|
|
__error |
|
) |
| |