OJ题目:click here~~
题目分析:二叉搜索树 = 二叉排序树 = 二叉查找树 。静态数组模拟建立二叉搜索树 。
AC_CODE
void CreateTree(char s[] , int a[]){
int len = strlen(s) ;
int i , j ;
for(i = 0;i < len;i++){
int temp = s[i] - '0' ;
for(j = 1;j < 100;){
if(a[j] == -1){
a[j] = temp ;
break ;
}
else
if(temp < a[j])
j = 2 * j ;
else j = 2 * j + 1 ;
}
}
}
int main(){
int i , j , n ;
char s[12] ;
int a[100] ;
int b[100] ;
while(scanf("%d",&n) && n){
for(i = 0;i < 100;i++) a[i] = -1 ;
scanf("%s",s) ;
CreateTree(s , a) ;
while(n--){
scanf("%s",s) ;
for(i = 0;i < 100;i++) b[i] = -1 ;
CreateTree(s , b) ;
for(i = 1;i < 100;i++)
if(a[i] != b[i]) break ;
if(i < 100) puts("NO") ;
else puts("YES") ;
}
}
return 0 ;
}