In [4]:
def printTree(t):
    stack = []
    stack.append(t)
    while stack:
        current = stack.pop()
        if current is not None:
            print(current.key)
            stack.append(current.left)
            stack.append(current.sibling)

In [5]:
class Node:
    def __init__(self, key, parent = None, left = None, sibling = None):
        self.key = key
        self.parent = parent
        self.left = left
        self.sibling = sibling

In [8]:
root = Node(18)
root.left = Node(12)
root.left.sibling = Node(10)
root.left.left = Node(7)
root.left.left.sibling = Node(4)
root.left.left.sibling.left = Node(5)
root.left.sibling.left = Node(2)
root.left.sibling.left.sibling = Node(21)

In [9]:
printTree(root)


18
12
10
2
21
7
4
5

In [ ]: