判断B树是否是A的子树
来源:互联网 发布:大数据征信查询入口app 编辑:程序博客网 时间:2024/04/30 12:27
#include <iostream>#include <cstdio>#include <cstring>#include <stdlib.h>using namespace std;#define M 1001typedef struct Tree{ int data; struct Tree *lson,*rson;} TNode,*ListTree;ListTree built(int n){ int val; ListTree point[M]; memset(point,NULL,sizeof(point)); for(int i=1; i<=n; i++) { scanf("%d",&val); point[i]=(ListTree)malloc(sizeof(TNode)); point[i]->data=val; point[i]->lson=NULL; point[i]->rson=NULL; } for(int i=1; i<=n; i++) { int k; scanf("%d",&k); for(int j=0; j<k; j++) { int tmp; scanf("%d",&tmp); if(j==0) point[i]->lson=point[tmp]; if(j==1) point[i]->rson=point[tmp]; } } return point[1];}void output(ListTree root)//前序遍历{ if(root!=NULL) { cout<<root->data<<" "; output(root->lson); output(root->rson); }}bool judge(ListTree ra,ListTree rb)//验证rb是不是ra的子树{ if(rb==NULL) return true; if(ra==NULL) return false; if(ra->data!=rb->data) return false; return judge(ra->lson,rb->lson)&&judge(ra->rson,rb->rson);}bool solve(ListTree ra,ListTree rb)//在ra中与rb根节点相同{ bool ans=false; if(ra!=NULL&&rb!=NULL) { if(ra->data==rb->data) ans=judge(ra,rb); if(!ans) ans=solve(ra->lson,rb); if(!ans) ans=solve(ra->rson,rb); } return ans;}int main(){ int n,m; while(scanf("%d %d",&n,&m)!=EOF) { ListTree roota=built(n); ListTree rootb=built(m); if(m==0) { printf("NO\n"); continue; } bool result=solve(roota,rootb); if(result) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- 判断a树是否是b树的子树
- 判断B树是否是A的子树
- 判断树a是否是树b的子树--递归递归递归
- 判断二分查找树A是否是二分查找树B的子树
- 2个二叉树A、B,树的每个节点上都有一个整数值。如何判断A与B是否其中一个是另一个的子树?
- 判断树B是否为树A的子树&&求出树的镜像
- 判断一个树是否是另外一个树的子树
- 判断一个树是否是另一个树的子树
- 判断树是否是另外一棵树的子树
- 判断一颗树是否是另外一个树的子树
- 判断一个二叉树是否是另一个的子树
- 判断一棵树是否是另一棵树的子树
- 判断一棵树是否是另一棵树的子树
- 判断一棵树是否是另一棵树的子树
- 【python】判断一棵树是否是另外一个树的子树
- 判断二叉树B是不是二叉树A的子树
- 判断树 B 是不是 树 A 的子树
- 判断是否是子树 和 判断二叉树是否平衡
- UITextView换行
- Authorized users only. All activity may be monitored and reported.
- 实验室的第三周-忙碌的一周
- Text Fields(文本框)
- lua 执行字符串
- 判断B树是否是A的子树
- Cucumber-JVM Within SecureCI
- UITextView控件的详细讲解
- Checkboxes(复选框)
- 安卓学习之路_20140418
- 一个Java程序员应该掌握的10项技能
- WPF: 通过Style 为TextBox添加 WarterMark
- 智力问题引发的哲学思考
- 贴边(效果还不完善)