#include <stdio.h>
#include <stdlib.h>
#define MaxLength 100
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*Node;
Node Creat()
{
char x;
Node p;
scanf("%c",&x);
if (x != ' ')
{
p = (Node)malloc(sizeof(BiTNode));
p->data = x;
p->lchild = Creat();
p->rchild = Creat();
}
else
p = NULL;
return p;
}
void LevelOrderTraverse(Node T)
{
Node Q[MaxLength];
Node P;
int front = 0,rear = 0;
if(T)
{
Q[rear] = T;
rear = (rear + 1) % MaxLength;
}
while(front != rear)
{
P = Q[front];
front = (front + 1) % MaxLength;
printf("%c ",P->data);
if (P->lchild)
{
Q[rear] = P->lchild;
rear = (rear + 1) % MaxLength;
}
if (P->rchild)
{
Q[rear] = P->rchild;
rear = (rear + 1) % MaxLength;
}
}
}
int main()
{
Node T = Creat();
LevelOrderTraverse(T);
return 0;
}