hdu——3791——二叉树搜索树
来源:互联网 发布:手机pdf阅读器 知乎 编辑:程序博客网 时间:2024/05/21 17:28
Problem Description
判断两序列是否为同一二叉搜索树序列
Input
开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
Output
如果序列相同则输出YES,否则输出NO
Sample Input
25674325432675763420
Sample Output
YESNO
#include <iostream>#include <stdio.h>#include <cstring>using namespace std;int main(){ int n; int tree1[1005]; int tree2[1005]; char s[25]; int j,i; while(cin>>n) { if(n==0) return 0; scanf("%s",s); memset(tree1,-1,sizeof(tree1)); for(i=0;s[i]!='\0';i++) { int t=s[i]-'0'; j=1; while(tree1[j]!=-1) { if(t<=tree1[j]) j=j*2; else j=j*2+1; } tree1[j]=t; } while(n--) { scanf("%s",s); memset(tree2,-1,sizeof(tree2)); for(i=0;s[i]!='\0';i++) { int t=s[i]-'0'; j=1; while(tree2[j]!=-1) { if(t<=tree2[j]) j=j*2; else j=j*2+1; } tree2[j]=t; } for(i=1;i<=1024&&tree1[i]==tree2[i];i++) if(i>1024) cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0;}
- hdu——3791——二叉树搜索树
- 二叉搜索树—平衡二叉树
- hdu 3791 二叉搜索树
- HDU 3791 二叉搜索树
- 【二叉搜索树】hdu 3791
- HDU-3791二叉搜索树
- HDU 3791 二叉搜索树
- HDU 3791 二叉搜索树
- HDU 3791 二叉搜索树
- hdu-3791-二叉搜索树
- hdu 3791 二叉搜索树
- hdu 3791 二叉搜索树
- HDU 3791 二叉搜索树
- 二叉搜索树 hdu 3791
- hdu 3791 二叉搜索树
- HDU 3791 二叉搜索树
- hdu 3791 二叉搜索树
- HDU 3791 二叉搜索树
- 递归算法简析
- 接口功能测试策略
- Python模块学习 ---- datetime
- hdu 1008 Elevator
- Google云计算三大核心技术之HBase
- hdu——3791——二叉树搜索树
- 取模和取余的区别
- 理想中的大学
- Android_NDK_LOG日志打印
- 7zip中文版
- zoj 2109 FatMouse' Trade简单的贪心 (注意double数组的排序问题)
- 类的成员函数参数定义为类的对象(匿名对象)
- iis7 文件上传后大小为0的终极解决方法
- windows错误码