#include
<iostream>
using namespace std;
typedef struct node
{ int data;
struct node
*lchild,*rchild;
} btree;
btree *Q[100];
btree *CREATREE(int a[],const int n){
btree *x= new btree[n];
for (int m=0; m<n ; m++)
x.data=a;
int
i = 0,front = 0,rear = 1;
btree *q =
NULL;
Q[rear] =
&x[i]; // a[i] 进队列
while (front <
rear){
front = front+1;
q = Q[front];
// a[i] 出队列
if (i+1<n){
rear
= rear+1;
Q[rear] = &x[i+1];
q->lchild = Q[rear];
} // a[i+1] 进队列
else q->lchild = NULL;
if (i+2<n){
rear = (rear+1);
Q[rear] = &x[i+2]; // a[i+2]
进队列
q->rchild = Q[rear];
}
else q->rchild = NULL;
i = i+2;
}
return x;
}
void main()
{
int
a[]={1,4,3,45,23,6,7,9,15,56};
btree *o=CREATREE(a,10);
cout
<<
o->lchild->rchild->lchild->data;
}