编写递归算法,计算二叉树T中叶子结点的数目。

【题目】编写递归算法,计算二叉树T中叶子结点的数目。
二叉链表类型定义∶

typedef struct BiTNode {
TElemType data;
struct BiTNode *lchild,*rchild;

} BiTNode,*BiTree;
要求实现下列函数∶

int Leaves(BiTree T);
/* 计算二叉树T中叶子结点的数目*/

 

#include "allinclude.h"  //DO NOT edit this line
int Leaves(BiTree T) 
{   // Add your code here
 
int countleaves(BiTree T,int &count);
int count=0;
 
return countleaves( T,count);
}
 
 
int countleaves(BiTree T,int &count)
{
  if(T==NULL)
    return count;
  if(T->lchild==NULL && T->rchild==NULL)  
    return ++count;
    
   countleaves(T->lchild,count) ;
   countleaves(T->rchild,count);
   return count;
}

你可能感兴趣的:(开发语言,算法,数据结构)