我已经编写了查找二叉树直径的代码。但我无法弄清楚它出错的地方。我写的两个函数及其定义如下: -查找树的直径
int btree::diameteroftree(node* leaf)
{
if (leaf==NULL)
return 0;
int lheight = hieghtoftree(leaf->left);
int rheight = hieghtoftree(leaf->right);
int ldiameter = diameteroftree(leaf->left);
int rdiameter = diameteroftree(leaf->right);
return max(lheight + rheight + 1,max(ldiameter,rdiameter));
}
int btree::hieghtoftree(node* leaf)
{
int left=0,right=0;
if(leaf==NULL)
return -1;
else
{
left=hieghtoftree(leaf->left);
right=hieghtoftree(leaf->right);
if(left > right)
return left +1;
else
return right+1;
}
}
我无法弄清楚我在哪里出错了。有人可以让我知道......
什么是树的直径?在某种意义上,树是圆形还是球形? – paxdiablo
@paxdiablo:http://mathworld.wolfram.com/GraphDiameter.html –
有什么问题? –