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.