m2skills

diameter bt python

Jun 13th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. # http://code2begin.blogspot.com
  2. # program to print the diameter of a given binary trees
  3.  
  4.  
  5. # node class
  6. class node:
  7.     def __init__(self, element):
  8.         self.data = element
  9.         self.left = None
  10.         self.right = None
  11.  
  12.  
  13.  
  14.  
  15. # function to find the height of a binary tree
  16. def height(root):
  17.     if root is None:
  18.         return 0
  19.  
  20.     return 1 + max(height(root.left), height(root.right))
  21.  
  22.  
  23. # function to print the diameter of a binary tree
  24. def diameter(root):
  25.     if root is None:
  26.         return 0
  27.  
  28.     left_height = height(root.left)
  29.     right_height = height(root.right)
  30.  
  31.     left_diameter = diameter(root.left)
  32.     right_diameter = diameter(root.right)
  33.  
  34.     return max(left_height + right_height + 1, max(left_diameter, right_diameter))
  35.  
  36.  
  37.  
  38. head = node(1)
  39. head.left = node(2)
  40. head.right = node(3)
  41. head.left.left = node(4)
  42. head.left.right = node(5)
  43. head.right.right = node(6)
  44. head.left.left.right = node(7)
  45. head.right.right.left = node(8)
  46. head.left.left.right.left = node(9)
  47. head.left.left.right.left.left = node(10)
  48. head.right.right.left.right = node(11)
  49. print("Diameter of the above binary tree is : " + str(diameter(head)))
Add Comment
Please, Sign In to add comment