7-1 树的同构 (20分) 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右
#include <bits/stdc++.h>
using namespace std;
struct tree{char data;int left,right;
};
struct tree bt1[1000];
struct tree bt2[1000];
int flag[1000];int FindRoot(struct tree bt[]){ //找到根节点的并返回int n;cin >> n;if(n == 0) return -1;\memset(flag,0,sizeof(flag));for(int j = 0;j < n;j++){cin >> bt[j].data;char a,b;cin >> a >> b;if(a == '-'){bt[j].left = -1;}else{bt[j].left = a - '0';flag[a-'0'] = 1;}if(b == '-'){bt[j].right = -1;}else{bt[j].right = b - '0';flag[b-'0'] = 1;}}int root;for(int i = 0;i < n;i++){if(flag[i] != 1)root = i;}return root;
}int JudgeTG(int root1,int root2){if(root1 == -1 && root2 == -1)return 1;if((root1 == -1 && root2 != -1) || (root1 != -1 && root2 == -1) || bt1[root1].data != bt2[root2].data)return 0;return (JudgeTG(bt1[root1].left,bt2[root2].left) && JudgeTG(bt1[root1].right,bt2[root2].right)) || (JudgeTG(bt1[root1].left,bt2[root2].right) &&JudgeTG(bt1[root1].right,bt2[root2].left));
}int main(){int root1 = FindRoot(bt1);int root2 = FindRoot(bt2);int result = JudgeTG(root1,root2);if(result)cout << "Yes" << endl;elsecout << "No" << endl;
}
7-1 树的同构 (20分) 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右相关推荐
- 7-1 查找书籍 (20 分)给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息
7-1 查找书籍 (20 分) 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价. 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息.每本 ...
- 7-3 树的同构 (25 分)(思路加详解)来呀baby!!!!!!!!
一:题目 7-3 树的同构 (25 分) 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把 ...
- PTA 03-树1 树的同构 (25分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...
- 【视频讲解】基础实验4-2.1 树的同构 (25 分)
立志用最少的代码做最高效的表达 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把其中一棵树 ...
- 03-树1 树的同构 (25分)
给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A.B.G的左右孩子互换后 ...
- 5-3 最长连续递增子序列 (20分)
5-3 最长连续递增子序列 (20分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列.例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8 ...
- 7-1 最大子列和问题 (20 分)
7-1 最大子列和问题 (20 分) 给定K个整数组成的序列{ N1, N2 , -, NK },"连续子列"被定义为{ Ni , Ni+1 , -, Nj } ...
- C语言程序练习-L1-023 输出GPLT (20分)
L1-023 输出GPLT (20分) 给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按GPLTGPLT-这样的顺序输出,并忽略其它字符.当然,四种字符(不区分大小写 ...
- 习题7-2 求一批整数中出现最多的个位数字 (20分)
习题7-2 求一批整数中出现最多的个位数字 (20分) 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字.例如给定3个整数1234.2345.3456,其中出现最多次数的数字是3和4, ...
最新文章
- 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(1)
- 快速启动程序的工具软件都比不了Win+R-转
- java在程序中加入音频_在任意Java程序中播放音频
- x86汇编-1(第三章—第四章)虚拟硬盘基本信息,虚拟硬盘的写入,bochs调试
- Microsoft的现代数据管理
- 用Java将文件读入字节数组的7个示例
- c++ winpcap开发(8)
- ConcurrentHashMap 底层原理,你真的理解了吗?
- Unity3D基础7:Transform组件
- Android安全:So分析
- Linux中mongodb定时远程备份
- Laravel执行seeder报错
- Pandas入门超详细教程,看了超简单
- PHP strtoupper函数解析
- Lind.DDD.Messaging框架通讯组件介绍
- war3骚招之剑牛拆家流
- 上海域格ASR平台CAT1模块MQTT和基站信息功能
- 使用lindo进行灵敏度分析
- JAVA spring hessian_Spring Boot整合hessian入门
- 肖特基二极管厂家和快恢复二极管厂家ASEMI有哪些型号