SubcloneSeeker
1.0.0
Subclone deconvolution software framework
|
Base class for any object that can seve as a tree node. More...
#include <TreeNode.h>
Public Member Functions | |
TreeNode () | |
virtual | ~TreeNode () |
TreeNodeVec_t & | getVecChildren () |
TreeNode * | getParent () |
void | addChild (TreeNode *child) |
void | removeChild (TreeNode *child) |
bool | isLeaf () const |
bool | isRoot () const |
Static Public Member Functions | |
static void | PreOrderTraverse (TreeNode *root, TreeTraverseDelegate &traverseDelegate) |
static void | PostOrderTraverse (TreeNode *root, TreeTraverseDelegate &traverseDelegate) |
Protected Attributes | |
TreeNodeVec_t | children |
TreeNode * | parent |
Friends | |
class | TreeTraverseDelegate |
Base class for any object that can seve as a tree node.
This class implements the basic tree operations, such as adding and removing children nodes, checking whether self is a root or a leaf, etc. It also implements, as class method, two basic traversing algorithm: . PreOrderTraverse . PostOrderTraverse Since the tree is not required to be binary, InOrder traverse makes little sense.
|
inline |
minimal constructor, reset all member variables
|
inlinevirtual |
declaring destructor to be virtual
void TreeNode::addChild | ( | TreeNode * | child | ) |
append a given node to this node's children list
child | A pointer to the node which which will be added as a child |
|
inline |
returns the node's parent.
|
inline |
returns a reference to the children vector
|
inline |
whether the node is a leaf node
|
inline |
whether the node is a root node
|
static |
Post-Order traverse algorithm
This method process the root node first, then all the children nodes (recursively), The actual action performed on the nodes are defined by the TreeTraverseDelegate object
root | The root node of the (sub)tree the traversing takes place |
traverseDelegate | An TreeTraverseDelegate object which defines the action performed on nodes |
|
static |
Pre-Order traverse algorithm
This method process all the children nodes first (recursively), and then process the root. The actual action performed on the nodes are defined by the TreeTraverseDelegate object
root | The root node of the (sub)tree the traversing takes place |
traverseDelegate | An TreeTraverseDelegate object which defines the action performed on nodes |
void TreeNode::removeChild | ( | TreeNode * | child | ) |
remove a child of this node
child | A pointer to the children node to be removed |
|
protected |
children node list
|
protected |
parent node