class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def insert(self, value):
if self.root is None:
self.root = Node(value)
else:
self._insert(self.root, value)
def _insert(self, current_node, value):
if value < current_node.value:
if current_node.left is None:
current_node.left = Node(value)
else:
self._insert(current_node.left, value)
else:
if current_node.right is None:
current_node.right = Node(value)
else:
self._insert(current_node.right, value)
def inorder_traversal(self):
result = []
self._inorder_traversal(self.root, result)
return result
def _inorder_traversal(self, current_node, result):
if current_node is not None:
self._inorder_traversal(current_node.left, result)
result.append(current_node.value)
self._inorder_traversal(current_node.right, result)
tree = BinaryTree()
tree.insert(5)
tree.insert(3)
tree.insert(7)
tree.insert(2)
tree.insert(4)
tree.insert(6)
tree.insert(8)
print(tree.inorder_traversal())