def add_child(self, child=None, name=None, dist=None, support=None):
if child is None:<EOL><INDENT>child = self.__class__()<EOL><DEDENT>if name is not None:<EOL><INDENT>child.name = name<EOL><DEDENT>if dist is not None:<EOL><INDENT>child.dist = dist<EOL><DEDENT>if support is not None:<EOL><INDENT>child.support = support<EOL><DEDENT>self.children.append(child)<EOL>child.up = self<EOL>return child<EOL>
Adds a new child to this node. If child node is not suplied
as an argument, a new node instance will be created.

Parameters
----------

child: 
    the node instance to be added as a child.
name: 
    the name that will be given to the child.
dist: 
    the distance from the node to the child.
support': 
    the support value of child partition.

Returns:
--------
    The child node instance