Tree Diameter :The diameter of a tree (sometimes called the width) is the number of nodes on the longest path between two leaves in the tree.The diameter of G is defined as being the maximal distance in the graph.
The diameter of a tree T is the largest of the following quantities :
* the diameter of T’s left subtree
* the diameter of T’s right subtree
* the longest path between leaves that goes through the root of T (this can be computed
Refer : http://geeksforgeeks.org/?p=5687
The diameter of a tree T is the largest of the following quantities :
* the diameter of T’s left subtree
* the diameter of T’s right subtree
* the longest path between leaves that goes through the root of T (this can be computed
/* Function to get diameter of a binary tree */
int diameter(struct node * tree){ /* base case where tree is empty */ if (tree == 0) return 0; /* get the height of left and right sub-trees */ int lheight = height(tree->left); int rheight = height(tree->right); /* get the diameter of left and right sub-trees */ int ldiameter = diameter(tree->left); int rdiameter = diameter(tree->right); /* Return max of following three 1) Diameter of left subtree 2) Diameter of right subtree 3) Height of left subtree + height of right subtree + 1 */ return max(lheight + rheight + 1, max(ldiameter, rdiameter));}
No comments:
Post a Comment