判别二叉树

程序框架搭建

Int main ()
{
建二叉树1
建二叉树2
判别是否同构并输出
Return 0;
}
需要设计的函数
读数据建二叉树

int main ()
{
Tree R1,R2;
R1 = BuildTree(T1);
R2 = BuildTree(T2);
if (Isomorphic(R1,R2))
printf("Yes\n");
else printf("No\n");
return 0;
}

如何建二叉树

Tree BuildTree(struct TreeNode T[])
{....
scanf("%d\n",&N);
if(N){....
for(i=0;i scanf("%c %c %c\n",&T[i].Element,&cl,&cr);
......
}
......
Root =???
}
return Root ;
}

T[i]中没有任何结点的left(cl)和right(cr)指向它,只有一个,就说明该结点是根结点。

判别二叉树_第1张图片
Paste_Image.png

如何判别两二叉树同构

判别二叉树_第2张图片
Paste_Image.png
判别二叉树_第3张图片
Paste_Image.png

你可能感兴趣的:(判别二叉树)