题目链接:hdu 3791 二叉搜索树
题目大意:中文题,略。
解题思路:先建树,然后比较各个对应位置上的值是否相同。
#include <stdio.h>
#include <string.h>
struct Node{
int val;
Node* left;
Node* right;
Node(){
val = 0;
left = right = NULL;
}
};
void Insert(Node* &root,int a){
if(root == NULL){
root = new Node;
root->val = a;
} else if(root->val > a)
Insert(root->left, a);
else
Insert(root->right, a);
}
bool equal_tree(Node* root, Node* root1){
if(root == NULL && root1 == NULL)
return true;
if (root != NULL && root1 != NULL) {
if (root->val != root1->val) return false;
if(equal_tree(root->left,root1->left)&&equal_tree(root->right,root1->right))
return true;
else
return false;
}
return false;
}
void Delete(Node* &root){
if(root->left != NULL)
Delete(root->left);
if(root->right != NULL)
Delete(root->right);
delete root;
}
const int N = 105;
char node[N];
int main(){
int n,a,flag,i,len,n1;
while(scanf("%d", &n) == 1 && n){
Node* root = NULL;
scanf("%s",node);
len=strlen(node);
for(i = 0; i < len; i++){
a = node[i]-'0';
Insert(root,a);
}
while(n--){
Node* root1 = NULL;
scanf("%s", node);
for(i = 0; i < len; i++){
a=node[i]-'0';
Insert(root1,a);
}
flag=equal_tree(root,root1);
if(flag==1)
printf("YES\n");
else
printf("NO\n");
Delete(root1);
}
Delete(root);
}
return 0;
}
分享到:
相关推荐
NULL 博文链接:https://128kj.iteye.com/blog/1734821
hdu 1166线段树代码
hdu 1166线段树
hdu acm 教案 搜索入门 hdu acm 教案 搜索入门
杭州电子科技大学oj平台上的第1010题,是关于搜索的题目,很不错的题
HDU的1250,主要是利用高精度加法,但是代码有点繁琐,效率不是很高
搜索 dfs 解题代码 hdu1241
HDU1059的代码
杭电ACMhdu1163
hdu1001解题报告
hdu 1574 passed sorce
HDU的一题........HDU DP动态规
本分类涵盖了图论领域的多种类型的题目,涉及到图论的基本概念、图的遍历、图的搜索、图的匹配、图的.isConnected性、图的最短路径、图的最小生成树、图的拓扑排序等多个方面。 图论是一个重要的计算机科学领域,...
hdu2101AC代码
hdu acm 教案 动态规划(1) hdu acm 教案 动态规划(1)
hdu 5007 Post Robot 字符串枚举。 暴力一下就可以了。
ACM HDU题目分类,我自己总结的大概只有十来个吧
hdu1290 解题报告 献给杭电五十周年校庆的礼物 (切西瓜问题,即平面分割空间)
HDU最全ac代码
hdu动态规划算法集锦