Untitled
unknown
plain_text
3 years ago
1.2 kB
4
Indexable
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> typedef struct Node_{ int data; struct Node_ *left,*right; }Node; char str[14000]; int pos,longer; char table[3005]; Node* make(int num){ Node* node=(Node*)malloc(sizeof(Node)); node->data=num; node->left=node->right=NULL; return node; } Node* constructTree(void){ int num=0; while(isdigit(str[pos]) && pos<longer){ num=num*10+(str[pos]-'0'); pos++; } Node* root=make(num); if(str[pos]=='?'){ pos++; root->left=constructTree(); root->right=constructTree(); return root; } pos++; return root; } char Ans(Node* root){ if(root->left==NULL && root->right==NULL) return table[root->data-1]; if(table[root->data-1]=='1') return Ans(root->left); else return Ans(root->right); } int main(void){ int N; scanf("%s",str); pos=0; longer=strlen(str); Node *root=constructTree(); scanf("%d",&N); for(int i=0;i<N;i++){ scanf("%s",table); printf("%c\n",Ans(root)); } return 0; }
Editor is loading...