#include <iostream>
#include "stdlib.h"
#include <string>
using namespace std;
typedef struct node {
int value;
struct node *lchild;
struct node *rchild;
}node,*BITREE;
void arraytotree(BITREE &p,int low,int high,int a[])
{
int mid;
if(low<=high)
{
mid=(low+high)/2;
p=(BITREE)malloc(sizeof(node));
p->value=a[mid];
cout<<p->value<<" ";
arraytotree(p->lchild,low,mid-1,a);
arraytotree(p->rchild,mid+1,high,a);
}else p=NULL;
}
void display_tree(BITREE tree) {
if(tree){
display_tree(tree->lchild);
cout<<tree->value<<" ";
display_tree(tree->rchild);
}
}
int main() {
int a[] = {1,2,3,4,9,10,33,56,78,90};
static BITREE tree;
arraytotree(tree, 0,sizeof(a)/sizeof(*a)-1, a);
display_tree(tree);
return 0;
}