This Trees lesson is for a beginner. Read the short notes, run each example, then change one name or number and run it again.
A tree starts at a root. Each node holds a value and links to child nodes.
Use a tree when values contain other values, such as folders, or a course that contains modules.
Example 1: Start here
A leaf is a node with no children.
class Node: # a template for objects
def __init__(self, value, left=None, right=None): # runs when you create the object
self.value = value # store this on the object
self.left = left # store this on the object
self.right = right # store this on the object
root = Node("Python", Node("Django"), Node("Flask")) # one object
print(root.left.value)
Example 2: Walk the values
Trees starts by visiting one value at a time. Read the printed lines from top to bottom.
values = [12, 3, 11, 7] # a list; the values stay in this order
for value in values: # repeat the indented lines once per value
print(value)
Example 3: Keep the largest
Many data-structure lessons reduce a list to one answer. This one remembers the largest number seen so far.
values = [12, 3, 11, 7] # a list; the values stay in this order
best = values[0] # the first value
for value in values: # repeat the indented lines once per value
if value > best: # run the indented lines only when this is true
best = value # another name for the same value
print(best)
Example 4: Search for a target
A search asks one yes-or-no question: is the target in the collection? Trees builds on that question.
values = [3, 12, 11] # a list; the values stay in this order
target = 12 # a whole number
print(target in values) # in is True when the value is found
