设T是指向二叉树根结点的指针变量,用非递归方法统计树中叶子结点数和...
发布网友
发布时间:2024-09-04 20:06
我来回答
共1个回答
热心网友
时间:2024-09-30 08:59
void Getnum(BTNode *t,int *n,int *m)//n是叶子节点数,m是非叶子结点数
//其中n,m的初值为零
{
BTNode *queue=new BTNode[50];//初始化一个队列
BTNode *T=t;
int rear=0,front=0;
if(!T) return;//若树为空,则返回
queue[rear++]=T;
while(rear!=front)
{
T=queue[front++];
if(T->Lchild||T->Rchild)//结点有左子树或右子树
{
(*m)++;
if(T->Lchild) queue[rear++]=T->Lchild;
if(T->Rchild) queue[rear++]=T->Rchild;
}
else (*n)++;
}
}