intrusive red black tree datastructure
Definition in file rbtree.h.
Go to the source code of this file.
Typedefs | |
typedef struct SCIP_RBTreeNode | SCIP_RBTREENODE |
Functions | |
SCIP_RBTREENODE * | SCIPrbtreeFirst_call (SCIP_RBTREENODE *root) |
SCIP_RBTREENODE * | SCIPrbtreeLast_call (SCIP_RBTREENODE *root) |
SCIP_RBTREENODE * | SCIPrbtreeSuccessor_call (SCIP_RBTREENODE *x) |
SCIP_RBTREENODE * | SCIPrbtreePredecessor_call (SCIP_RBTREENODE *x) |
void | SCIPrbtreeDelete_call (SCIP_RBTREENODE **root, SCIP_RBTREENODE *node) |
void | SCIPrbtreeInsert_call (SCIP_RBTREENODE **root, SCIP_RBTREENODE *parent, int pos, SCIP_RBTREENODE *node) |
#define SCIP_RBTREE_HOOKS SCIP_RBTREENODE _rbtreenode |
#define SCIPrbtreeFirst | ( | root | ) | SCIPrbtreeFirst_call((SCIP_RBTREENODE*)(root)) |
Definition at line 56 of file rbtree.h.
Referenced by SCIPrbtreeDelete_call().
#define SCIPrbtreeLast | ( | root | ) | SCIPrbtreeLast_call((SCIP_RBTREENODE*)(root)) |
#define SCIPrbtreeSuccessor | ( | x | ) | SCIPrbtreeSuccessor_call((SCIP_RBTREENODE*)(x)) |
#define SCIPrbtreePredecessor | ( | x | ) | SCIPrbtreePredecessor_call((SCIP_RBTREENODE*)(x)) |
#define SCIPrbtreeDelete | ( | root, | |
node | |||
) | SCIPrbtreeDelete_call((SCIP_RBTREENODE**)(root), (SCIP_RBTREENODE*)(node)) |
Definition at line 60 of file rbtree.h.
Referenced by unlinkChunk().
#define SCIPrbtreeInsert | ( | r, | |
p, | |||
c, | |||
n | |||
) | SCIPrbtreeInsert_call((SCIP_RBTREENODE**)(r), (SCIP_RBTREENODE*)(p), (c), (SCIP_RBTREENODE*)(n) ) |
Definition at line 61 of file rbtree.h.
Referenced by linkChunk().
#define SCIPrbtreeFindInt | ( | r, | |
k, | |||
n | |||
) | SCIPrbtreeFindInt_call((SCIP_RBTREENODE*)(r),(k),(SCIP_RBTREENODE**)(n)) |
#define SCIPrbtreeFindReal | ( | r, | |
k, | |||
n | |||
) | SCIPrbtreeFindReal_call((SCIP_RBTREENODE*)(r),(k),(SCIP_RBTREENODE**)(n)) |
#define SCIPrbtreeFindPtr | ( | c, | |
r, | |||
k, | |||
n | |||
) | SCIPrbtreeFindPtr_call((c),(SCIP_RBTREENODE*)(r),(void*)(k),(SCIP_RBTREENODE**)(n)) |
#define SCIPrbtreeFindElem | ( | c, | |
r, | |||
k, | |||
n | |||
) | SCIPrbtreeFindElem_call((c),(SCIP_RBTREENODE*)(r),(SCIP_RBTREENODE*)(k),(SCIP_RBTREENODE**)(n)) |
#define FOR_EACH_NODE | ( | type, | |
n, | |||
r, | |||
body | |||
) |
Definition at line 68 of file rbtree.h.
Referenced by BMScheckEmptyBlockMemory_call(), BMSdisplayBlockMemory_call(), clearChkmem(), and isPtrInChkmem().
#define SCIP_DEF_RBTREE_FIND | ( | NAME, | |
KEYTYPE, | |||
NODETYPE, | |||
LT, | |||
GT | |||
) |
typedef struct SCIP_RBTreeNode SCIP_RBTREENODE |
SCIP_RBTREENODE* SCIPrbtreeFirst_call | ( | SCIP_RBTREENODE * | root | ) |
get first element in tree with respect to sorting key
root | root of the tree |
Definition at line 205 of file rbtree.c.
References SCIP_RBTreeNode::child, and LEFT.
Referenced by SCIPrbtreeSuccessor_call().
SCIP_RBTREENODE* SCIPrbtreeLast_call | ( | SCIP_RBTREENODE * | root | ) |
get last element in tree with respect to sorting key
root | root of the tree |
Definition at line 219 of file rbtree.c.
References SCIP_RBTreeNode::child, and RIGHT.
Referenced by SCIPrbtreePredecessor_call().
SCIP_RBTREENODE* SCIPrbtreeSuccessor_call | ( | SCIP_RBTREENODE * | x | ) |
get successor of given element in the tree
x | element to get successor for |
Definition at line 233 of file rbtree.c.
References SCIP_RBTreeNode::child, PARENT, RIGHT, and SCIPrbtreeFirst_call().
SCIP_RBTREENODE* SCIPrbtreePredecessor_call | ( | SCIP_RBTREENODE * | x | ) |
get predecessor of given element in the tree
x | element to get predecessor for |
Definition at line 253 of file rbtree.c.
References SCIP_RBTreeNode::child, LEFT, PARENT, and SCIPrbtreeLast_call().
void SCIPrbtreeDelete_call | ( | SCIP_RBTREENODE ** | root, |
SCIP_RBTREENODE * | node | ||
) |
delete the given node from the tree given by it's root node. The node must be contained in the tree rooted at root.
root | root of the tree |
node | node to delete from tree |
Definition at line 275 of file rbtree.c.
References BLACK, SCIP_RBTreeNode::child, COLOR, LEFT, PARENT, SCIP_RBTreeNode::parent, rbDeleteFixup(), rbTransplant(), RIGHT, SCIPrbtreeFirst, SET_COLOR, and SET_PARENT.
void SCIPrbtreeInsert_call | ( | SCIP_RBTREENODE ** | root, |
SCIP_RBTREENODE * | parent, | ||
int | pos, | ||
SCIP_RBTREENODE * | node | ||
) |
insert node into the tree given by it's root. Requires the future parent and the position of the parent as returned by the tree's find function defined using the SCIP_DEF_RBTREE_FIND macro.
root | root of the tree |
parent | future parent of node to be inserted |
pos | position of parent with respect to node, i.e. -1 if the parent's key comes before node and 1 if the parent's key comes after the node |
node | node to insert into the tree |
Definition at line 330 of file rbtree.c.
References SCIP_RBTreeNode::child, LEFT, MAKE_RED, rbInsertFixup(), RIGHT, and SET_PARENT.