spacepaste

Z8SLacSv.py

  1.  
  2. <function Tree.__len__.<locals>.<lambda> at 0x7fe558fca598>
  3. <__main__.Tree object at 0x7fe558fcfb70> <__main__.Tree object at 0x7fe558fcfc18> 3
  4. 1
  5. <__main__.Tree object at 0x7fe5598725f8> <__main__.Tree object at 0x7fe558fbec88> 2
  6. 1
  7. None None 1
  8. 1
  9. None None 1
  10. Traceback (most recent call last):
  11. File "../decompiler.py", line 219, in <module>
  12. tree()
  13. File "../decompiler.py", line 61, in tree
  14. print(len(t))
  15. File "../decompiler.py", line 56, in __len__
  16. return self.preorder(function=lambda data, d : 1, join=lambda l,r,c : ((0 if l is None else l) + (0 if r is None else r) + c))
  17. File "../decompiler.py", line 20, in preorder
  18. l = self.left.preorder(function, depth+1)
  19. File "../decompiler.py", line 20, in preorder
  20. l = self.left.preorder(function, depth+1)
  21. File "../decompiler.py", line 26, in preorder
  22. return join(l,r,c)
  23. TypeError: 'int' object is not callable
  24.  

7YtNyaTx.py

  1.  
  2. class Tree:
  3. def __init__(self, data=None, left=None, right=None):
  4. self.left = left
  5. self.right = right
  6. self.data = data
  7. def preorder(self, function=lambda data, d : None, join=lambda l,r,c : None, depth=0):
  8. print(join)
  9. l = None
  10. r = None
  11. print(self.left, self.right, self.data)
  12. if self.left is not None:
  13. l = self.left.preorder(function, depth+1)
  14. if self.right is not None:
  15. r = self.left.preorder(function, depth+1)
  16. c = function(self.data, depth)
  17. print(join)
  18. print(l,r,c)
  19. return join(l,r,c)
  20. def inorder(self, function=lambda data, d : None, join=lambda l,r,c : None, depth=0):
  21. l = None
  22. r = None
  23. if self.left is not None:
  24. l = self.left.preorder(function, depth+1)
  25. c = function(self.data, depth)
  26. if self.right is not None:
  27. r = self.left.preorder(function, depth+1)
  28. return join(l,r,c)
  29. def postorder(self, function=lambda data, d : None, join=lambda l,r,c : None, depth=0):
  30. l = None
  31. r = None
  32. c = function(self.data, depth)
  33. if self.left:
  34. l = self.left.preorder(function, depth+1)
  35. if self.right:
  36. r = self.left.preorder(function, depth+1)
  37. return join(l,r,c)
  38. def __len__(self):
  39. # def join(left, right, curr):
  40. # sum = curr
  41. # if left is not None:
  42. # sum += left
  43. # if right is not None:
  44. # sum += right
  45. # return sum
  46. return self.preorder(function=lambda data, d : 1, join=lambda l,r,c : ((0 if l is None else l) + (0 if r is None else r) + c))
  47. def tree():
  48. t = Tree(3, Tree(2, Tree(1), Tree(4)), Tree(5, Tree(6), Tree(7)))
  49. print(len(t))
  50.