这一题虽然涉及二叉树但是至少 根据二叉树的特性来做题,不用建树,只需知道左边的是2k右边是2k+1即可
#include <iostream>
#include <string>
#include <stack>
#include <cstdio>
#include <queue>
#include <cstring>
#include <cstring>
using namespace std;
int main(){
int n;
int flag[100];
int Y=1;
while(cin>>n&&n){
printf("S-Tree #%d:\n",Y++);
string cc;
getchar();
for (int i = 0; i < n ;i++) {
getchar();
scanf("%d",&flag[i]);
getchar();
}
string ss;
cin>>ss;
int cnt;
cin>>cnt;
while(cnt--){
int t=1;
string s;
cin>>s;
for(int i=0;i<s.length();i++){
if(s[i]=='0') t*=2;
else t=t*2+1;
}
cc+=ss[t-ss.length()];
}
cout<<cc<<endl<<endl;
}
}