算法思想:同样是遍历算法,求高度问题。不同的是,要将所有儿女入队,并计数。
A -> CBA -> DEFGCBA
typedef struct BTNode{
char name;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode,*BiTree;
void BTandName(BiTree T){
if(!T)
return 0;
BiTree Q[MAXSIZE],p;
int front=-1,rear=-1,top=-1;
int last=0,level=0,count=0;
Q[++rear]=T; //根结点入队
while(front < rear){ //队中还有结点,不空 **这里不太容易理解
p=Q[++front]; //出队,front++
++top; //入栈
if(p->lchild){
p=p->lchild;
Q[++rear]=p; //左孩子入队
while(p->rchild){
p=p->rchild;
Q[++rear]=p; //右兄弟!兄弟!兄弟!(A的右孩子)入队
}
}
if(last == front){ //访问到该层的最后一