Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, value, left=None, right=None):
- self.left = left
- self.right = right
- self.value = value
- pass
- class Tree:
- def __init__(self):
- self.root = None
- pass
- def createNode(self, val):
- return Node(val)
- def insert(self, value):
- self.__insert(self.root, value)
- def __insert(self, rootptr, val):
- if rootptr is None:
- rootptr = self.createNode(val)
- return 0
- elif val < rootptr.value:
- if rootptr.left is not None:
- self.__insert(rootptr.left, val)
- else:
- rootptr.left = self.createNode(val)
- elif val > rootptr.value:
- if rootptr.right is not None:
- self.__insert(rootptr.right, val)
- else:
- rootptr.right = self.createNode(val)
- else:
- #TODO: raise exception
- print("Duplicate value!")
- def traversePreorder(self):
- self.__traversePreorder(self.root)
- def __traversePreorder(self, rootptr):
- if rootptr is None:
- return 1
- print(rootptr.value)
- self.__traversePreorder(rootptr.left)
- self.__traversePreorder(rootptr.right)
- mytree = Tree()
- mytree.insert(1)
- mytree.insert(2)
- mytree.insert(2)
- mytree.insert(4)
- mytree.insert(5)
- mytree.traversePreorder()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement