求二叉树的高度、结点数和叶结点数
1.程序代码(高度):
int depth(BinTree t)
{
if(t == NULL)
return 0;
int dl = depth(t->llink);
int dr = depth(t->rlink);
return (dl>dr ? dl : dr)+1;
}
2.程序代码(结点数):
int num_of_nodes(BinTree t)
{
if(t == NULL)
return 0;
return 1+num_of_nodes(t->llink)+num_of_nodes(t->rlink);
}
3.程序代码(叶结点数):
int num_of_nodes(BinTree t)
{
if(t == NULL)
return 0;
if(t->llink == NULL && t->rlink == NULL)
return 1;
return num_of_nodes(t->llink)+num_of_nodes(t->rlink);
}