只要将先序遍历二叉树算法中vist()函数简单地进行修改就可以。
#define MAX_NODE 50
int search_leaves( BTNode *T)
{
BTNode *Stack[MAX_NODE] ,*p=T;
int top=0, num=0;
if (T!=NULL)
{
stack[++top]=p ;
while (top>0)
{
p=stack[top--] ;
if (p->Lchild==NULL&&p->Rchild==NULL) num++ ;
if (p->Rchild!=NULL )
stack[++top]=p->Rchild;
if (p->Lchild!=NULL )
stack[++top]=p->Lchild;
}
}
return(num) ;
}