此题 有规律,本来打算 重新建树的,但是后来还是放弃了,用下标法。
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 1000
#define M 10
int main(){
int t = 1, n, m;
while (scanf("%d", &n), n){
char str[N], tem[M], q[M];
int num[M];
for (int i = 0; i < n; i++){
scanf("%s", tem);
num[i] = tem[1] - '0';
}
scanf("%s%d", str,&m);
for (int i = 0; i < m; i++){
scanf("%s", tem);
int k = 0;
for (int j = 0; j < n; j++)
k=tem[num[j] - 1] == '1'? (k<<1) + 1:(k<<1);
q[i] = str[k];
}
q[m] = '\0';
printf("S-Tree #%d:\n%s\n\n", t++, q);
}
return 0;
}