Advertisement
radchukd

Untitled

Apr 8th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.02 KB | None | 0 0
  1. class SumTree:
  2.     def __init__(self):
  3.         self.root = None
  4.  
  5. class Node:
  6.     def __init__(self):
  7.         self.key = 0
  8.         self.left = None
  9.         self.right = None
  10.  
  11. def makeNode(key):
  12.     n = Node()
  13.     n.key = key
  14.     return n
  15.  
  16. def build_sum_tree(array):
  17.     return build_sum_tree2(array, 0, len(array))
  18.  
  19. def build_sum_tree2(array, startpos, length):
  20.     if length < 1:
  21.         return None
  22.     if length == 1:
  23.         return makeNode(array[startpos])
  24.     halflen = length/2
  25.     l = build_sum_tree2(array, startpos, halflen)
  26.     r = build_sum_tree2(array, startpos+halflen, length-halflen)
  27.     n = makeNode(l.key + r.key)
  28.     n.left = l
  29.     n.right = r
  30.     return n
  31.  
  32. def is_sum_tree(tree):
  33.     if tree == None:
  34.         return True
  35.     if tree.left is None or tree.right is None:
  36.         pass
  37.     else:
  38.         if tree.key != tree.left.key + tree.right.key:
  39.             return False
  40.         else:
  41.             is_sum_tree(tree.right)
  42.             is_sum_tree(tree.left)
  43.     return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement