void CreatebiTree(BiTree *BT)
{ SqStack s;
BiTree p,e;
int Flag=1;
char ch;
initstack(&s);
*BT=NULL;
scanf("%c",&ch);
while (ch !='#') {
switch(ch) {
case '(': { Push(&s,p);
Flag = 1;
break;}
case ',': { Flag = 0; break; }
case ')': { Pop(&s,&e); break;}
default:{
p=(BiNode *)malloc(sizeof(BiNode)) ;
p->lchild = p->rchild = NULL;
p->data = ch ;
if (!(*BT))
*BT = p ;
else { Gettop(s,&e);
if (Flag)
e->lchild = p ;
else
e->rchild = p ;
}
}
}
scanf("%c",&ch);
}
}
void deep_traverse(BiTree *T)
{ BiTree p;
SqQueue q;
initQueue(&q);
p=*T;
EnQueue(&q,p);
while (!QueueEmpty(q))
{ DeQueue(&q,&p);
printf("%c ", p->data);
if (p->lchild!=NULL) EnQueue(&q,p->lchild);
if (p->rchild!=NULL) EnQueue(&q,p->rchild);
}
}