class Tree: def __init__(self): self.overall_root = None def insert(self, value): self.overall_root = self._insert(value, self.overall_root) def _insert(self, value, root): if root == None: root = self._Node(value) elif value < root.data: root.left = self._insert(value, root.left) else: root.right = self._insert(value, root.right) return root def inorder(self): for i in self._inorder(self.overall_root): yield i def _inorder(self, root): if (root != None): for i in self._inorder(root.left): yield i yield(root.data) for i in self._inorder(root.right): yield i def print(self): for i in self.inorder(): print(i) class _Node: def __init__(self2, data = None, left = None, right = None): self2.data = data self2.left = left self2.right = right