树T1交换其(某些)左右节点的左右儿子变换成树T2,则是同构。给出一个多项式时间算法以决定是否两棵树同构

数据结构与算法分析——c语言描述 练习4.42a 答案


很惭愧,不会计算复杂度。大神看到了请指教。


int IsIsomorphic(SearchTree t1, SearchTree t2) {
	if (t1&&t2) {
		if (t1->element != t2->element)
			return 0;
		return (isomorphic(t1->left, t2->left) && isomorphic(t1->right, t2->right)) || (isomorphic(t1->left, t2->right) && isomorphic(t1->right, t2->left));
	}
	else {
		return t1 == NULL&&t2 == NULL;
	}
}


你可能感兴趣的:(树T1交换其(某些)左右节点的左右儿子变换成树T2,则是同构。给出一个多项式时间算法以决定是否两棵树同构)