二叉树的属性操作
count() = 10;
height() = 4;
degree() = 2;
二叉树结点的数目
-定义功能:count(node)
·在node为根结点的二叉树中统计结点数目
int count(BTreeNode<T>* node)const
{
return (node != NULL)?(count(node->left) +count(node->right)+1) : 0;
}
二叉树的高度
-定义功能:height(node)
·获取node为根节点的二叉树的高度
int height(BTreeNode<T>* node)const
{
int ret = 0;
if(node != NULL)
{
int lh = height(node->left);
int rh = height(node->right);
ret = ((lh > rh) ? lh : rh)+1;
}
return ret;
}
树的度数
-定义功能:degree(node)
·获取node为根节点的二叉树的度数
int degree(BTreeNode<T>* node) const
{
int ret = 0;
if(node != NULL)
{
BTreeNode<T>* childp[] = {node->left,node->right};
ret = (!!node->left + !!node->right);
for(int i = 0;(i<2) && (ret < 2);i++)
{
int d = degree(child[i]);
if(ret < d)
{
ret = d;
}
}
}
return ret;
}