Advertisement
Guest User

fkin dab

a guest
Oct 18th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. class BinarySearchTree:
  2.  
  3.     def __init__(self, data):
  4.         self.data = data
  5.         self.left = None
  6.         self.right = None
  7.  
  8.     def search(self, find_data):
  9.         if self.data == find_data:
  10.             return self
  11.         elif find_data < self.data and self.left != None:
  12.             return self.left.search(find_data)
  13.         elif find_data > self.data and self.right != None:
  14.             return self.right.search(find_data)
  15.         else:
  16.             return None
  17.            
  18.     def get_left(self):
  19.         return self.left
  20.  
  21.     def get_right(self):
  22.         return self.right
  23.  
  24.     def set_left(self, tree):
  25.         self.left = tree
  26.  
  27.     def set_right(self, tree):
  28.         self.right = tree
  29.  
  30.     def set_data(self, data):
  31.         self.data = data
  32.  
  33.     def get_data(self):
  34.         return self.data
  35.  
  36. def sum_beneath(t, num):
  37.   if not num:
  38.     total = 0
  39.     if t.get_left() or t.get_right():
  40.       if t.get_left():
  41.         total += sum_beneath(t.get_left(), None)
  42.       if t.get_right():
  43.         total += sum_beneath(t.get_right(), None)
  44.     total += t.get_data()
  45.     return total
  46.   total = 0
  47.   t = t.search(num)
  48.   if not t:
  49.     return 0
  50.   if t.get_left():
  51.     total += sum_beneath(t.get_left(), None)
  52.   if t.get_right():
  53.     total += sum_beneath(t.get_right(), None)
  54.   return total
  55.  
  56. t = BinarySearchTree(55)
  57. a = BinarySearchTree(24)
  58. b = BinarySearchTree(8)
  59. c = BinarySearchTree(51)
  60. d = BinarySearchTree(25)
  61. e = BinarySearchTree(72)
  62. f = BinarySearchTree(78)
  63.  
  64. t.set_left(a)
  65. t.set_right(e)
  66. a.set_left(b)
  67. a.set_right(c)
  68. c.set_left(d)
  69. e.set_right(f)
  70.  
  71. result = sum_beneath(t, 100)
  72. print('Sum beneath 100 =', result)
  73.  
  74. result = sum_beneath(t, 72)
  75. print('Sum beneath 72 =', result)
  76.  
  77. result = sum_beneath(t, 24)
  78. print('Sum beneath 24 =', result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement