二叉树相似性

来源:互联网 发布:最佳适应算法例题 编辑:程序博客网 时间:2024/03/28 18:45

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

要求实现下列函数:
Status Similar(BiTree t1, BiTree t2);
/* 判断两棵二叉树是否相似的递归算法 */

二叉链表类型定义:
typedef struct BiTNode {
    TElemType data;
    BiTNode  *lchild, *rchild;
} BiTNode, *BiTree;

 

Status Similar(BiTree t1, BiTree t2)
/* 判断两棵二叉树是否相似的递归算法 */
{
  if(!t1&&!t2)
    return TRUE;
  else if(!t1||!t2)
    return FALSE;
  else
    return (Similar(t1->lchild,t2->lchild)&& Similar(t1->rchild,t2->rchild));
}