from listoflist import *

""" tree traversals on trees represented using list of lists """ 

def preorder(tree):
    """ preorder tree traversal """
    if tree:
        print getRootValue(tree)
        preorder(getLeftChild(tree))
        preorder(getRightChild(tree))

def inorder(tree):
    """ inorder tree traversal """
    if tree:
        inorder(getLeftChild(tree))
        print getRootValue(tree)
        inorder(getRightChild(tree))

def postorder(tree):
    """ postorder tree traversal """
    if tree:        
        postorder(getLeftChild(tree))
        postorder(getRightChild(tree))
        print getRootValue(tree)
       
        
t = ['/', 
        ['+',
         [5, [],[]],
         [15,[],[]]
        ],
        ['*',
         [2,[],[]],
         [5,[],[]]
        ]
       ]


postorder(t)
print '----'
preorder(t)
print '-----'
inorder(t)