void CopySubTree(Vertex<T>* vertex, Vertex<T>* second_vertex) {
		if (second_vertex->left_son != &null_vertex) {
			Vertex<T>* left_son = new Vertex<T>(second_vertex->left_son->element);
			vertex->left_son = left_son;
			left_son->father = vertex;
			CopySubTree(left_son, second_vertex->left_son);
		}
		if (second_vertex->right_son != &null_vertex) {
		Vertex<T>* right_son = new Vertex<T>(second_vertex->right_son->element);
			vertex->right_son = right_son;
			right_son->father = vertex;
			CopySubTree(right_son, second_vertex->right_son);
		}
	}
예제 #2
0
void 
CDataNode::Copy( const CDataNode& root )
{GUCEF_TRACE;

    *this = root;
    CopySubTree( root );
}
	void CopyTree(const Tree& tree) {
		if (tree.root != &null_vertex) {
			root = new Vertex<T>(tree.root->element);
			root->father = &null_vertex;
			CopySubTree(root, tree.root);
		} else {
			root = &null_vertex;
		}
	}