http://acm.hdu.edu.cn/showproblem.php?pid=3791&&二叉搜索树
来源:互联网 发布:话剧暗恋桃花源知乎 编辑:程序博客网 时间:2024/05/09 13:46
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解题思路:二叉搜索树,又称为二叉排序树,其性质:通过对二叉排序树的中序遍历,即得到从小到大排列。在建树的过程中进行比较,一旦不相等就结束。AC代码:#include<iostream>#include<string.h>#include<string>#include<memory.h>#define CLR(arr,val) memset(arr,val,sizeof(arr))#define N 2<<11//注意易错点using namespace std;char s[N];char _s[N];char s1[N];int flag;void Build(char ch,int pos,int ans){if(_s[pos]==-1){_s[pos]=ch;if(ans)if(ch!=s[pos]) flag=false;return;}if(ch>_s[pos]) Build(ch,pos<<1 | 1,ans);else Build(ch,pos<<1,ans);}void solve(bool ans){flag=true;for(int i=0;i<strlen(s1);++i){if(!flag) return;Build(s1[i],1,ans);}}int main(){int n;while(~scanf("%d",&n),n){CLR(_s,-1);scanf("%s",s1);int len=strlen(s1);solve(0);memcpy(s,_s,strlen(_s));//for(int i=0;i!=n;++i){CLR(_s,-1);scanf("%s",s1); int res=strlen(s1);if(res!=len){puts("NO");continue;}solve(1);if(flag) puts("YES");else puts("NO");}}return 0;}
- http://acm.hdu.edu.cn/showproblem.php?pid=3791&&二叉搜索树
- http://acm.hdu.edu.cn/showproblem.php?pid=1005
- http://acm.hdu.edu.cn/showproblem.php?pid=1333
- http://acm.hdu.edu.cn/showproblem.php?pid=2710
- http://acm.hdu.edu.cn/showproblem.php?pid=2866
- http://acm.hdu.edu.cn/showproblem.php?pid=1041
- http://acm.hdu.edu.cn/showproblem.php?pid=1719
- http://acm.hdu.edu.cn/showproblem.php?pid=2136
- http://acm.hdu.edu.cn/showproblem.php?pid=1166
- http://acm.hdu.edu.cn/showproblem.php?pid=3519
- http://acm.hdu.edu.cn/showproblem.php?pid=2446
- http://acm.hdu.edu.cn/showproblem.php?pid=1709
- http://acm.hdu.edu.cn/showproblem.php?pid=1874
- http://acm.hdu.edu.cn/showproblem.php?pid=1863
- http://acm.hdu.edu.cn/showproblem.php?pid=1879
- http://acm.hdu.edu.cn/showproblem.php?pid=1875
- http://acm.hdu.edu.cn/showproblem.php?pid=1102
- http://acm.hdu.edu.cn/showproblem.php?pid=1162
- hdu 1394(有空了用树状数组试试)
- hdu 2205 又见回文
- performSelectorOnMainThread 对参数的引用计数
- Linux查看进程打开多少文件描述符命令-lsof
- PHP底层工作原理
- http://acm.hdu.edu.cn/showproblem.php?pid=3791&&二叉搜索树
- 网络访问消息: 无法显示此页
- HDU 4001
- hibernate学习笔记(数据库事物,隔离级别)
- 《Practical WPF Charts and Graphics 》翻译——之五
- Bug 跟踪管理系统 Mantis 在 IIS5 下安装指南
- Drupal的工作原理
- 《Practical WPF Charts and Graphics 》翻译——之六
- 触摸屏代码分析——实现按下中断