我想问一下这个程序输出的结果是什么样子的。
#include<stdio.h> #include<memory.h>
#define M 100
#define Null 0
typedef struct node
{
int data;
struct node *lchild, *rchild;
}bitree;
bitree *bTree[M];
int front=0, rear=0;
bitree *creat()
{
bitree *t;
int x;
scanf("%d", &x);
if(x==0) t=Null;
else
{
t=(bitree*)malloc(sizeof(bitree));
t->data=x;
t->lchild=creat();
t->rchild=creat();
}
return t;
}
void inorder(t)
bitree *t;
{ if(t!=Null)
{
inorder (t->lchild);
printf("%4d", t->data);
inorder (t->rchild);
}
}
void enqueue(t)
bitree *t;
{
if(front!=(rear+1) % M)
{
rear=(rear+1) % M;
bTree[rear]=t;
}
}
bitree *delqueue()
{
if(front==rear) return Null;
front=(front+1) % M;
return (bTree[front]);
}
void levorder(t)
bitree *t;
{
bitree *p;
if(t!=Null)
{
enqueue(t);
while(front!=rear)
{
p=delqueue();
printf("%4d", p->data);
if(p->lchild!=Null)
enqueue(p->lchild);
if(p->rchild!=Null)
enqueue(p->rchild);
}
}
}
void main()
{
bitree *root;
printf("\n");
root=creat();
inorder(root);
printf("\n");
levorder(root);
return;
}
以上程序输出的结果是什么样子呢?
构造的树:
a
b c
d e f
g