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; };
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); };
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(); }