class Node:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
t = None
t = Node(10)
t = Node(10, left=Node(5), right=Node(15))
t = Node(10,
left=Node(5,
left=Node(-100),
right=Node(7,
left=Node(6))),
right=Node(30,
left=Node(20,
right=Node(25))))
t.left.right.left.val
t.right.left.right.val
def min(t):
if not t.left:
return t.val
else:
return min(t.left)
min(t)
def max(t):
if not t.right:
return t.val
else:
return max(t.right)
max(t)
def find(t, x):
if t:
print(t.val)
if not t:
return False
elif t.val == x:
return True
elif t.val < x:
return find(t.right, x)
else: #t.val > x
return find(t.left, x)
find(t, -100)
def traverse(t, fn):
if t: #there are still nodes in the tree
traverse(t.left, fn)
traverse(t.right, fn)
fn(t.val)
traverse(t, print)