我已經編寫了查找二叉樹直徑的代碼。但我無法弄清楚它出錯的地方。我寫的兩個函數及其定義如下: -查找樹的直徑
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 –
有什麼問題? –