函数题:判断两棵二叉树是否同构(递归法)
判断两棵二叉树是否同构(递归法)
### 函数接口定义:
```c++
bool Isomorphism(BiTree T1,BiTree T2);
```
### 裁判测试程序样例:
```c++
#include
#include
#define N 100;
using namespace std;
typedef struct BiNode{
char data;
struct BiNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T,char a[],int &i){
char ch;
ch=a[i++];
if(ch=='#') T=NULL;
else{
T=new BiTNode;
T->data=ch;
CreateBiTree(T->lchild,a,i);
CreateBiTree(T->rchild,a,i);
}
}
bool Isomorphism(BiTree T1,BiTree T2);
int main(){
BiTree T1,T2;
int i=0,j=0;
char a[N];
char b[N];
cin>>a>>b;
CreateBiTree(T1,a,i);
CreateBiTree(T2,b,j);
cout< return 0;
}
/* 请在这里填写答案 */
```
### 输入样例:
输入两行字符序列先序递归构建两棵二叉树。每个字符对应一个树节点,#表示空节点。
```in
ABD#E###CF##G##
HIJ#K###LM##N##
```
### 输出样例:
同构输入1,否则输入0。
```out
1
```
答案:若无答案欢迎评论
### 函数接口定义:
```c++
bool Isomorphism(BiTree T1,BiTree T2);
```
### 裁判测试程序样例:
```c++
#include
#include
#define N 100;
using namespace std;
typedef struct BiNode{
char data;
struct BiNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T,char a[],int &i){
char ch;
ch=a[i++];
if(ch=='#') T=NULL;
else{
T=new BiTNode;
T->data=ch;
CreateBiTree(T->lchild,a,i);
CreateBiTree(T->rchild,a,i);
}
}
bool Isomorphism(BiTree T1,BiTree T2);
int main(){
BiTree T1,T2;
int i=0,j=0;
char a[N];
char b[N];
cin>>a>>b;
CreateBiTree(T1,a,i);
CreateBiTree(T2,b,j);
cout<
}
/* 请在这里填写答案 */
```
### 输入样例:
输入两行字符序列先序递归构建两棵二叉树。每个字符对应一个树节点,#表示空节点。
```in
ABD#E###CF##G##
HIJ#K###LM##N##
```
### 输出样例:
同构输入1,否则输入0。
```out
1
```
答案:若无答案欢迎评论