Beispiel #1
0
bin_tree_node<Item>* bin_tree_node<Item>::clone()
{
	bin_tree_node<Item>* pRet = new bin_tree_node<Item>::t_node(m_data);
	if(get_lchild())
		pRet->set_lchild(get_lchild()->clone());
	if(get_rchild())
		pRet->set_rchild(get_rchild()->clone());

	return pRet;
};
Beispiel #2
0
void bin_tree_node<Item>::travel_LRRoot(ibin_tree_traveler<Item>* tor)
{
	if(!tor)
		return;

	if(get_lchild())
		get_lchild()->travel_LRRoot(tor);
	if(get_rchild())
		get_rchild()->travel_LRRoot(tor);
	tor->travel(this);
};
Beispiel #3
0
void CTreeNode::free()
{
	if (has_lchild())
		if (lchild->is_leaf())
			delete lchild;
		else
			lchild->free();
	if (has_rchild())
		if (rchild->is_leaf())
			delete get_rchild();
		else
			rchild->free();
}