第十周项目3-利用二叉树遍历思想解决问题(5)
2015-12-04 09:30
351 查看
Copyright (c) 2015,烟台大学计算机学院
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年12月04日
判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似;②t1和t2之一为空,另一不为空,则不相似;③t1的左子树和t2的左子树是相似的,且t1的右子树与t2的右子树是相似的,则t1和t2相似。):
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年12月04日
判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似;②t1和t2之一为空,另一不为空,则不相似;③t1的左子树和t2的左子树是相似的,且t1的右子树与t2的右子树是相似的,则t1和t2相似。):
#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; }
相关文章推荐
- 奥运会出票系统
- 脉络清晰的BP神经网络讲解,赞
- 脉络清晰的BP神经网络讲解,赞
- 苹果官方github地址
- Android中使用include标签和merge标签重复使用布局
- ARM寻址方式及相关指令汇总
- c++/c实现线程池
- 用FileExplorer查看android手机中的数据库
- mysql 1067错误
- HTTPS和HTTP的区别
- 隐私政策
- jquery解决插件冲突
- Longest Common Prefix
- hdu 3460 Ancient Printer
- VS C++ 控件使用
- vSphere Management Assistant(VMA) 命令行修改IP
- 串口驱动移植心得
- 如何在原生工程中引入Cordova工程
- 关于__GNU_SOURCE 这个宏
- MediaCodec Demo