Saturday, May 22, 2010

find the diameter of a tree

Here is the program to find the diameter of a binary tree.
int diameter = 0;
int findDiameter(struct tree * node)
{
int dim ,l_len,r_len;
/* If null node came then return 0 */
if(node == 0)
return 0;
/* Initialize all the temp length variables by 0 */
dim = l_len = r_len = 0;
/* Recursive call for left & right subtree */
l_len = findDiameter(node->left);
r_len = findDiameter(node->right);
/* Calculate the depth at this level */
dim = r_len + l_len + 1;
/* If the current level diameter is bigger then previous */
/* Then save the current diameter as biggest one */
if(dim > diameter)
diameter = dim;
/* Return the depth, till current node */
return (MAX(l_len,r_len) + 1);
}

No comments:

Post a Comment