Python binary search trees
In this tree, smaller values go left and larger values go right. Equal values are ignored, giving set-like behavior.
Python
class Node:
def __init__(self, value):
self.value = value
self.left = self.right = None
def insert(root, value):
if root is None:
return Node(value)
if value < root.value:
root.left = insert(root.left, value)
elif value > root.value:
root.right = insert(root.right, value)
return root
def inorder(root, values):
if root is not None:
inorder(root.left, values)
values.append(root.value)
inorder(root.right, values)
root = None
for value in [4, 2, 6, 1, 3]:
root = insert(root, value)
values = []
inorder(root, values)
print(values)
assert values == [1, 2, 3, 4, 6]