【18年扬大真题】若已知两棵二叉树B1和B2皆为空,或者皆不为空且B1的左、右子树和B2的左、右子树分别相似,则称二叉树B1和B2相似。试编写算法,判定两棵二叉树是否相似。

【18年扬大真题】若已知两棵二叉树B1和B2皆为空,或者皆不为空且B1的左、右子树和B2的左、右子树分别相似,则称二叉树B1和B2相似。试编写算法,判定两棵二叉树是否相似。

int Similal(BiTree B1,BiTree B2){
	if(!B1&&!B2){//均为空
		return 1;
	}
	if((!B1&&B2)||(B1&&!B2)){//一个为空,一个不为空
		return 0;
	}
	//剩下的只有B1和B2均不为空的情况
	//判定其子树
	if(Similar(B1->lchild,B2->lchild)&&Similar(B1->rchild,B2->rchild)){
		return 1;
	}
	else{
		return 0;
	}
}

你可能感兴趣的:(数据结构代码汇总,算法,数据结构,树,相似,18年扬大真题)