hdu-二叉搜索树
发布日期:2022-02-02 02:58:04 浏览次数:13 分类:技术文章

本文共 1279 字,大约阅读时间需要 4 分钟。

Problem Description
判断两序列是否为同一二叉搜索树序列
 
Input
开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
 
Output
如果序列相同则输出YES,否则输出NO
 
Sample Input
25674325432675763420
 
Sample Output
YESNO
代码:
#include 
#include
#include
using namespace std;int main(){ int i,j,t; char s[22]; int tree[1111]; int tree1[1111]; while(cin>>t) { if(t==0)break; cin>>s; memset(tree,-1,sizeof(tree)); //用数组来建立二叉树 for(i=0; s[i]; i++) { int c=s[i]-'0'; j=1; while(tree[j]!=-1) { if(c<=tree[j]) j=j*2; else j=j*2+1; } tree[j]=c; } while(t--) { scanf("%s",s); memset(tree1,-1,sizeof(tree1)); for(i=0; s[i]; i++) { int c=s[i]-'0'; j=1; while(tree1[j]!=-1) { if(c<=tree1[j]) j=j*2; else j=j*2+1; } tree1[j]=c; } //判断是否是同一颗二叉树 for(i=1; i<=1024&&tree[i]==tree1[i]; i++);//一直执行for循环 if(i>1024) cout<<"YES"<

转载地址:https://blog.csdn.net/u010368749/article/details/13543819 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:子序列个数
下一篇:AR/VR---"沉浸式"体验

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月19日 17时18分06秒