使用非递归的层次遍历,借助辅助队列Q实现层次遍历,在遍历时候利用指针判断一层是否遍历完,如果遍历完了将top-p(即为该层宽度)存入count辅助队列;
int BiWidth(BiTree t){
if(t==NULL) return 0;
BiTNode* Q[MaxSize];
int top=0,r=0,p=0;
int count[MaxSize];
int i=-1;
Q[top]=t;
while (p<=top){
if(Q[p]->lchild)
Q[++top]=Q[p]->lchild;
if(Q[p]->rchild)
Q[++top]=Q[p]->rchild;
if(p==r){
count[++i]=top-p;
r=top;
}
p++;
}
int max=1;
for(int j=0;j<=i;j++){
cout<max)
max=count[j];
}
return max;
}



