void TraveLevel(BTNode *b) { int i; BTNode *Qu[Maxsize]; int front,rear;//rear指向最后一个节点,front指向要插入节点之前那个节点 front=rear=0; b->level=1; rear++;Qu[rear]=b; while(rear!=front) { front++; printf("%c",Qu[front]->date); printf("\n"); if (Qu[front]->Leftchild!=NULL) { rear++;Qu[rear]=Qu[front]->Leftchild;Qu[rear]->level=Qu[front]->level+1; } if (Qu[front]->Rightchild!=NULL) { rear++;Qu[rear]=Qu[front]->Rightchild;Qu[rear]->level=Qu[front]->level+1; } } int T; int max=0;//用于保存最大的层数 int MaxLevel;//用于保存最大层 i=1; while(i<=rear) { int n=0; T=Qu[i]->level; while(i<=rear&&Qu[i]->level==T) { i++; n++; } if (n>max) { max=n; MaxLevel=T; } } printf("%d",MaxLevel); }