//递归
void Width(BiTree T,int k)
{
if(T==NULL) return;
count[k]++;
if(count[k]>Max) Max=count[k];
Width(T->leftchild, k+1);
Width(T-.rightchild, k+1);
}
//非递归
void Width(BiTree T)
{
if(T==NULL) return;
int front=-1,rear=-1;
int count=0,size=0;
InitQueue(Q);
Q[++rear]=T;
while(front<rear)
{
if(count>Max) Max=count;
size=count;
count=0;
while(size--)
{
p=Q[++front];
if(p->leftchild!=NULL)
{
Q[++rear]=p->leftchild;
count++;
}
if(p->rightchild!=NULL)
Q[++rear]=p->rightchild;
count++;
}
}
}