#include<stdio.h>
#include<stdlib.h>
char in[]= {'d','b','e','a','f','c','g'};
char pre[]={'a','b','d','e','c','f','g'};
int size = sizeof(in);
int pos = 0;
typedef struct node{
char value;
struct node*left;
struct node*right;
}treenode;
treenode* get_tree(int l,int r);
void print(treenode*root);
int search(char val);
void print(treenode*root)
{
if(root==NULL)
return;
print(root->left);
printf("%c",root->value);
print(root->right);
}
int search(char val)
{
int i;
for(i=0;i<size;i++)
{
if(in[i]==val)
return i;
}
return -1;
}
treenode* get_tree(int l, int r)
{
int inpos = search(pre[pos]);
if(l>=r)return NULL;
pos++;
treenode* temp = (treenode*)malloc(sizeof(struct node));
temp->value = in[inpos];
temp->left = get_tree(l,inpos);
temp->right = get_tree(inpos+1,r);
return temp;
}
int main()
{
treenode*root = NULL;
int l = 0;
root = get_tree(l,size);
print(root);
printf("\n");
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CgpjaGFyIGluW109IHsnZCcsJ2InLCdlJywnYScsJ2YnLCdjJywnZyd9OwpjaGFyIHByZVtdPXsnYScsJ2InLCdkJywnZScsJ2MnLCdmJywnZyd9OwppbnQgc2l6ZSA9IHNpemVvZihpbik7CmludCBwb3MgPSAwOwoKdHlwZWRlZiBzdHJ1Y3Qgbm9kZXsKCWNoYXIgdmFsdWU7CglzdHJ1Y3Qgbm9kZSpsZWZ0OwoJc3RydWN0IG5vZGUqcmlnaHQ7Cn10cmVlbm9kZTsKCnRyZWVub2RlKiBnZXRfdHJlZShpbnQgbCxpbnQgcik7CnZvaWQgcHJpbnQodHJlZW5vZGUqcm9vdCk7CmludCBzZWFyY2goY2hhciB2YWwpOwoKdm9pZCBwcmludCh0cmVlbm9kZSpyb290KQp7CglpZihyb290PT1OVUxMKQoJcmV0dXJuOwoJcHJpbnQocm9vdC0+bGVmdCk7CglwcmludGYoIiVjIixyb290LT52YWx1ZSk7CglwcmludChyb290LT5yaWdodCk7Cn0KCmludCBzZWFyY2goY2hhciB2YWwpCnsKCWludCBpOwoJZm9yKGk9MDtpPHNpemU7aSsrKQoJewoJCWlmKGluW2ldPT12YWwpCgkJcmV0dXJuIGk7Cgl9CglyZXR1cm4gLTE7Cn0KCnRyZWVub2RlKiBnZXRfdHJlZShpbnQgbCwgaW50IHIpCnsKCWludCBpbnBvcyA9IHNlYXJjaChwcmVbcG9zXSk7CglpZihsPj1yKXJldHVybiBOVUxMOwoJcG9zKys7Cgl0cmVlbm9kZSogdGVtcCA9ICh0cmVlbm9kZSopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm9kZSkpOyAgIAoJdGVtcC0+dmFsdWUgPSBpbltpbnBvc107Cgl0ZW1wLT5sZWZ0ID0gZ2V0X3RyZWUobCxpbnBvcyk7Cgl0ZW1wLT5yaWdodCA9IGdldF90cmVlKGlucG9zKzEscik7CglyZXR1cm4gdGVtcDsKfQoJIAppbnQgbWFpbigpCnsKCQoJdHJlZW5vZGUqcm9vdCA9IE5VTEw7CglpbnQgbCA9IDA7Cglyb290ID0gZ2V0X3RyZWUobCxzaXplKTsKICAgIHByaW50KHJvb3QpOwogICAgcHJpbnRmKCJcbiIpOwoJcmV0dXJuIDA7Cn0K