请说明下列算法中的Unknown和order 的功能整个程序将建立一个什么样的结构?最后的输出是什么?
#include<stdio.h>
#include<malloc.h>
#definen 8
#define MaxSize 100
typedef struct Node { char data;
struct Node *Lc,' Rc;
}Node,*BiNode;
void unkncwn(BiNode &t,int i,char*a) { t=Node* )malloc(sizeof(Node));
t->data=a[i];
if(2*i<=n)unknown(t>Lc,2* i,a);
else t->Lc=NULL;
if(2*i+1<=n) unknown(t->Rc,2*i+1,a);
else t->Rc=NULL;
}
void Order(BiNode b) { BiNodep;
BiNode qu[MaxSize];
int front,rear;
front=rear=l;
reart++;
qu[rear]=b;
whilef(front!=rear) { front=(front+1)%MaxSize;
pqu[front];
printf("%c ",p->data);//输出
if(p->Lc!=NULL) { rear-=(rear+1)%MaxSize;
qu[rear]=p->Lc;
if(p-> Rc!=NULL)
{
rear-(rear+1)%MaxSize;
qu[rear]=p->Rc;
}
}
}
void mainO { BiNode p;
int j=l;
char a[9];
a[1]='c';
a[2]="b'; a[3]='d';
a[4]='a';a[5]='e';
a[6]=f;a[7]='g';
a[8]=h';
unknown(p.ja);
printf("结果为: ");
Order(p);
printf("\n"); }