- /*
- *Copyright(c)2017,烟台大学计算机学院
- *All right reserved.
- *文件名:sk.cpp btree.h btree.cpp
- *作者:盛凯
- *完成日期:2017年11月10日
- *版本号:v1.0
- *
- *问题描述:判断二叉树是否相似
- *输入描述:无
- *程序输出:见运行结果
-
- sk.cpp:
- #include <stdio.h>
#include "btree.h"
int Like(BTNode *b1,BTNode *b2)
{
int like1,like2;
if (b1==NULL && b2==NULL)
return 1;
else if (b1==NULL || b2==NULL)
return 0;
else
{
like1=Like(b1->lchild,b2->lchild);
like2=Like(b1->rchild,b2->rchild);
return (like1 & like2);
}
}
int main()
{
BTNode *b1, *b2, *b3;
CreateBTNode(b1,"B(D,E(H(J,K(L,M(,N)))))");
CreateBTNode(b2,"A(B(D(,G)),C(E,F))");
CreateBTNode(b3,"u(v(w(,x)),y(z,p))");
if(Like(b1, b2))
printf("b1和b2相似\n");
else
printf("b1和b2不相似\n");
if(Like(b2, b3))
printf("b2和b3相似\n");
else
printf("b2和b3不相似\n");
DestroyBTNode(b1);
DestroyBTNode(b2);
DestroyBTNode(b3);
return 0;
}
- 程序运行结果如图所示:
-
- 反思总结:
- 利用递归层层访问左右子树,直到访问为空。
第九周项目3(5)- 判断二叉树是否相似
最新推荐文章于 2022-04-22 10:16:21 发布