Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. class Node:
  2. def __init__(self, value, left=None, right=None):
  3. self.left = left
  4. self.right = right
  5. self.value = value
  6. pass
  7.  
  8.  
  9. class Tree:
  10. def __init__(self):
  11. self.root = None
  12. pass
  13.  
  14. def createNode(self, val):
  15. return Node(val)
  16.  
  17. def insert(self, value):
  18. self.__insert(self.root, value)
  19.  
  20. def __insert(self, rootptr, val):
  21. if rootptr is None:
  22. rootptr = self.createNode(val)
  23. return 0
  24.  
  25. elif val < rootptr.value:
  26. if rootptr.left is not None:
  27. self.__insert(rootptr.left, val)
  28. else:
  29. rootptr.left = self.createNode(val)
  30.  
  31. elif val > rootptr.value:
  32. if rootptr.right is not None:
  33. self.__insert(rootptr.right, val)
  34. else:
  35. rootptr.right = self.createNode(val)
  36.  
  37. else:
  38. #TODO: raise exception
  39. print("Duplicate value!")
  40.  
  41.  
  42.  
  43. def traversePreorder(self):
  44. self.__traversePreorder(self.root)
  45.  
  46. def __traversePreorder(self, rootptr):
  47. if rootptr is None:
  48. return 1
  49. print(rootptr.value)
  50. self.__traversePreorder(rootptr.left)
  51. self.__traversePreorder(rootptr.right)
  52.  
  53.  
  54.  
  55.  
  56. mytree = Tree()
  57. mytree.insert(1)
  58. mytree.insert(2)
  59. mytree.insert(2)
  60. mytree.insert(4)
  61. mytree.insert(5)
  62. mytree.traversePreorder()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement