Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

binary search tree data structure

Functions

SCIP_EXPORT SCIP_RETCODE SCIPbtnodeCreate (SCIP_BT *tree, SCIP_BTNODE **node, void *dataptr)
 
SCIP_EXPORT void SCIPbtnodeFree (SCIP_BT *tree, SCIP_BTNODE **node)
 
SCIP_EXPORT void * SCIPbtnodeGetData (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_BTNODESCIPbtnodeGetParent (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_BTNODESCIPbtnodeGetLeftchild (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_BTNODESCIPbtnodeGetRightchild (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_BTNODESCIPbtnodeGetSibling (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_Bool SCIPbtnodeIsRoot (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_Bool SCIPbtnodeIsLeaf (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_Bool SCIPbtnodeIsLeftchild (SCIP_BTNODE *node)
 
SCIP_EXPORT SCIP_Bool SCIPbtnodeIsRightchild (SCIP_BTNODE *node)
 
SCIP_EXPORT void SCIPbtnodeSetData (SCIP_BTNODE *node, void *dataptr)
 
SCIP_EXPORT void SCIPbtnodeSetParent (SCIP_BTNODE *node, SCIP_BTNODE *parent)
 
SCIP_EXPORT void SCIPbtnodeSetLeftchild (SCIP_BTNODE *node, SCIP_BTNODE *left)
 
SCIP_EXPORT void SCIPbtnodeSetRightchild (SCIP_BTNODE *node, SCIP_BTNODE *right)
 
SCIP_EXPORT SCIP_RETCODE SCIPbtCreate (SCIP_BT **tree, BMS_BLKMEM *blkmem)
 
SCIP_EXPORT void SCIPbtFree (SCIP_BT **tree)
 
SCIP_EXPORT void SCIPbtPrintGml (SCIP_BT *tree, FILE *file)
 
SCIP_EXPORT SCIP_Bool SCIPbtIsEmpty (SCIP_BT *tree)
 
SCIP_EXPORT SCIP_BTNODESCIPbtGetRoot (SCIP_BT *tree)
 
SCIP_EXPORT void SCIPbtSetRoot (SCIP_BT *tree, SCIP_BTNODE *root)
 

Function Documentation

◆ SCIPbtnodeCreate()

SCIP_EXPORT SCIP_RETCODE SCIPbtnodeCreate ( SCIP_BT tree,
SCIP_BTNODE **  node,
void *  dataptr 
)

creates a binary tree node with sorting value and user data

creates a tree node with (optinal) user data

Parameters
treebinary tree
nodepointer to store the created node
dataptruser node data pointer, or NULL

Definition at line 8578 of file misc.c.

References btnodeCreateEmpty(), NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by checkOverloadViaThetaTree(), insertThetanode(), and SCIPrealHashCode().

◆ SCIPbtnodeFree()

SCIP_EXPORT void SCIPbtnodeFree ( SCIP_BT tree,
SCIP_BTNODE **  node 
)

frees the binary node including the rooted subtree

Note
The user pointer (object) is not freed. If needed, it has to be done by the user.

frees the node including the rooted subtree

Note
The user pointer (object) is not freed. If needed, it has to be done by the user.
Parameters
treebinary tree
nodenode to be freed

Definition at line 8642 of file misc.c.

References btnodeFreeLeaf(), NULL, and SCIPbtnodeFree().

Referenced by deleteLambdaLeaf(), SCIPbtFree(), SCIPbtnodeFree(), and SCIPrealHashCode().

◆ SCIPbtnodeGetData()

◆ SCIPbtnodeGetParent()

SCIP_EXPORT SCIP_BTNODE* SCIPbtnodeGetParent ( SCIP_BTNODE node)

returns the parent which can be NULL if the given node is the root

Parameters
nodenode

Definition at line 8697 of file misc.c.

References NULL, and SCIP_BtNode::parent.

Referenced by deleteLambdaLeaf(), insertThetanode(), SCIPbtnodeGetSibling(), SCIPbtnodeIsLeftchild(), SCIPbtnodeIsRightchild(), SCIPrealHashCode(), updateEnvelope(), and updateKeyOnTrace().

◆ SCIPbtnodeGetLeftchild()

◆ SCIPbtnodeGetRightchild()

◆ SCIPbtnodeGetSibling()

SCIP_EXPORT SCIP_BTNODE* SCIPbtnodeGetSibling ( SCIP_BTNODE node)

returns the sibling of the node or NULL if does not exist

Parameters
nodenode

Definition at line 8727 of file misc.c.

References NULL, SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), and SCIPbtnodeGetRightchild().

Referenced by SCIPrealHashCode().

◆ SCIPbtnodeIsRoot()

SCIP_EXPORT SCIP_Bool SCIPbtnodeIsRoot ( SCIP_BTNODE node)

returns whether the node is a root node

Parameters
nodenode

Definition at line 8747 of file misc.c.

References NULL, and SCIP_BtNode::parent.

Referenced by deleteLambdaLeaf(), inferboundsEdgeFinding(), SCIPbtnodeIsLeftchild(), SCIPbtnodeIsRightchild(), SCIPrealHashCode(), and updateKeyOnTrace().

◆ SCIPbtnodeIsLeaf()

◆ SCIPbtnodeIsLeftchild()

SCIP_EXPORT SCIP_Bool SCIPbtnodeIsLeftchild ( SCIP_BTNODE node)

returns TRUE if the given node is left child

Parameters
nodenode

Definition at line 8767 of file misc.c.

References FALSE, SCIPbtnodeGetLeftchild(), SCIPbtnodeGetParent(), SCIPbtnodeIsRoot(), and TRUE.

Referenced by deleteLambdaLeaf(), SCIPrealHashCode(), and updateKeyOnTrace().

◆ SCIPbtnodeIsRightchild()

SCIP_EXPORT SCIP_Bool SCIPbtnodeIsRightchild ( SCIP_BTNODE node)

returns TRUE if the given node is right child

Parameters
nodenode

Definition at line 8785 of file misc.c.

References FALSE, SCIPbtnodeGetParent(), SCIPbtnodeGetRightchild(), SCIPbtnodeIsRoot(), and TRUE.

Referenced by deleteLambdaLeaf(), and SCIPrealHashCode().

◆ SCIPbtnodeSetData()

SCIP_EXPORT void SCIPbtnodeSetData ( SCIP_BTNODE node,
void *  dataptr 
)

sets the give node data

Note
The old user pointer is not freed.
Parameters
nodenode
dataptrnode user data pointer

Definition at line 8806 of file misc.c.

References SCIP_BtNode::dataptr, and NULL.

Referenced by SCIPrealHashCode().

◆ SCIPbtnodeSetParent()

SCIP_EXPORT void SCIPbtnodeSetParent ( SCIP_BTNODE node,
SCIP_BTNODE parent 
)

sets parent node

Note
The old parent including the rooted subtree is not delete.
Parameters
nodenode
parentnew parent node, or NULL

Definition at line 8820 of file misc.c.

References NULL, and SCIP_BtNode::parent.

Referenced by deleteLambdaLeaf(), insertThetanode(), and SCIPrealHashCode().

◆ SCIPbtnodeSetLeftchild()

SCIP_EXPORT void SCIPbtnodeSetLeftchild ( SCIP_BTNODE node,
SCIP_BTNODE left 
)

sets left child

Note
The old left child including the rooted subtree is not delete.
Parameters
nodenode
leftnew left child, or NULL

Definition at line 8834 of file misc.c.

References SCIP_BtNode::left, and NULL.

Referenced by deleteLambdaLeaf(), insertThetanode(), and SCIPrealHashCode().

◆ SCIPbtnodeSetRightchild()

SCIP_EXPORT void SCIPbtnodeSetRightchild ( SCIP_BTNODE node,
SCIP_BTNODE right 
)

sets right child

Note
The old right child including the rooted subtree is not delete.
Parameters
nodenode
rightnew right child, or NULL

Definition at line 8848 of file misc.c.

References NULL, and SCIP_BtNode::right.

Referenced by deleteLambdaLeaf(), insertThetanode(), and SCIPrealHashCode().

◆ SCIPbtCreate()

SCIP_EXPORT SCIP_RETCODE SCIPbtCreate ( SCIP_BT **  tree,
BMS_BLKMEM blkmem 
)

creates an binary tree

Parameters
treepointer to store the created binary tree
blkmemblock memory used to createnode

Definition at line 8859 of file misc.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, and SCIP_OKAY.

Referenced by checkOverloadViaThetaTree(), and SCIPrealHashCode().

◆ SCIPbtFree()

SCIP_EXPORT void SCIPbtFree ( SCIP_BT **  tree)

frees binary tree

Note
The user pointers (object) of the search nodes are not freed. If needed, it has to be done by the user.

frees binary tree

Note
The user pointers (object) of the nodes are not freed. If needed, it has to be done by the user.
Parameters
treepointer to binary tree

Definition at line 8878 of file misc.c.

References BMSfreeBlockMemory, NULL, and SCIPbtnodeFree().

Referenced by checkOverloadViaThetaTree(), and SCIPrealHashCode().

◆ SCIPbtPrintGml()

SCIP_EXPORT void SCIPbtPrintGml ( SCIP_BT tree,
FILE *  file 
)

prints the binary tree in GML format into the given file

Parameters
treebinary tree
filefile to write to

Definition at line 8930 of file misc.c.

References btPrintSubtree(), nnodes, NULL, SCIPbtGetRoot(), SCIPbtIsEmpty(), SCIPgmlWriteClosing(), SCIPgmlWriteOpening(), and TRUE.

Referenced by SCIPrealHashCode().

◆ SCIPbtIsEmpty()

SCIP_EXPORT SCIP_Bool SCIPbtIsEmpty ( SCIP_BT tree)

returns whether the binary tree is empty (has no nodes)

Parameters
treebinary tree

Definition at line 8960 of file misc.c.

References NULL, and SCIP_Bt::root.

Referenced by checkOverloadViaThetaTree(), inferboundsEdgeFinding(), insertThetanode(), SCIPbtPrintGml(), and SCIPrealHashCode().

◆ SCIPbtGetRoot()

SCIP_EXPORT SCIP_BTNODE* SCIPbtGetRoot ( SCIP_BT tree)

returns the root node of the binary tree or NULL if the binary tree is empty

returns the the root node of the binary or NULL if the binary tree is empty

Parameters
treetree to be evaluated

Definition at line 8970 of file misc.c.

References NULL, and SCIP_Bt::root.

Referenced by checkOverloadViaThetaTree(), inferboundsEdgeFinding(), insertThetanode(), SCIPbtPrintGml(), and SCIPrealHashCode().

◆ SCIPbtSetRoot()

SCIP_EXPORT void SCIPbtSetRoot ( SCIP_BT tree,
SCIP_BTNODE root 
)

sets root node

Note
The old root including the rooted subtree is not delete.
Parameters
treetree to be evaluated
rootnew root, or NULL

Definition at line 8983 of file misc.c.

References NULL, and SCIP_Bt::root.

Referenced by deleteLambdaLeaf(), insertThetanode(), and SCIPrealHashCode().