题目描述:求二叉树中值最大的结点所在层数。
#include <limits.h>
int findMaxNodeLevel(BiTree T) {
BiTree *Q[100];
int front = -1, rear = -1;
int last = 0, level = 0;
BiTNode *p;
int currentlevel = 0;
Q[++rear] = T;
int Max = T->data;
while (front < rear) {
p = Q[++front];
if (p->lchild)
Q[++rear] = p->lchild;
if (p->rchild)
Q[++rear] = p->rchild;
if (last == front) {
level++;
int currentmax = INT_MIN;
for (int i = last + 1; i <= rear; ++i) {
p = Q[i];
if (p->data > currentmax)
currentmax = p->data;
}
if(currentmax > Max){
currentlevel = level + 1;
Max = currentmax;
}
}
last = rear;
}
return currentlevel;
}