//建一棵树
void CreateTree(CSTree T)
{
char c[20];
CSTree p,p1;
LinkQueue q;
int i,l;
InitQueue(q);
printf("请输入根结点(字符型,空格为空)\n");
scanf("%c%c",&c[0]);
if(c[0]!=NULL)
{
T=(CSTree)malloc(sizeof(CSNode));
T->data=c[0];
T->nextsibling=NULL;
EnQueue(q,T);
while(!QueueEmpty(q))
{
DeQueue(q,p);
printf("\n请按长幼顺序输入结点 %c 的所有孩子",p->data);
gets(c);
l=strlen(c);
if(l>0)
{
p1=p->firstchild=(CSTree)malloc(sizeof(CSNode));
p1->data=c[0];
for(i=1;i<l;i++)
{
p1->nextsibling=(CSTree)malloc(sizeof(CSNode));
EnQueue(q,p1);
p1=p1->nextsibling;
p1->data=c[i];
}
p1->nextsibling=NULL;
EnQueue(q,p1);
}
else
p->firstchild=NULL;
}
}
else
T=NULL;
}
void CreateTree(CSTree T)
{
char c[20];
CSTree p,p1;
LinkQueue q;
int i,l;
InitQueue(q);
printf("请输入根结点(字符型,空格为空)\n");
scanf("%c%c",&c[0]);
if(c[0]!=NULL)
{
T=(CSTree)malloc(sizeof(CSNode));
T->data=c[0];
T->nextsibling=NULL;
EnQueue(q,T);
while(!QueueEmpty(q))
{
DeQueue(q,p);
printf("\n请按长幼顺序输入结点 %c 的所有孩子",p->data);
gets(c);
l=strlen(c);
if(l>0)
{
p1=p->firstchild=(CSTree)malloc(sizeof(CSNode));
p1->data=c[0];
for(i=1;i<l;i++)
{
p1->nextsibling=(CSTree)malloc(sizeof(CSNode));
EnQueue(q,p1);
p1=p1->nextsibling;
p1->data=c[i];
}
p1->nextsibling=NULL;
EnQueue(q,p1);
}
else
p->firstchild=NULL;
}
}
else
T=NULL;
}