Home Blog Coding Problem Practice

Level Order Tree Traversal or breadth first traversal for the tree.

Published:


''

input tree

                                1
                2                               3
        4                 5             6               7
      8  9              10 11        12  13          14   15

'''


class Node:
    pass


root = Node()
root.data = 1
root.left = Node()
root.right = Node()

root.left.data = 2
root.left.left = Node()
root.left.right = Node()

root.right.data = 3
root.right.left = Node()
root.right.right = Node()

node2 = root.left
node2.left.data = 4
node2.right.data = 5

node3 = root.right
node3.left.data = 6
node3.right.data = 7

node4 = node2.left
node4.left = Node()
node4.left.data = 8
node4.right = Node()
node4.right.data = 9


node5 = node2.right
node5.left = Node()
node5.left.data = 10
node5.right = Node()
node5.right.data = 11

node6 = node3.left
node6.left = Node()
node6.left.data = 10

# node7 = node3.right
# node7.right = Node()
# node7.right.data = 11


queue = []

def printTree(rootNode, queue):

    if rootNode.data is not None:
        print(rootNode.data)

    t = None
    while len(queue) > 0:
        t = queue[len(queue)-1]
        queue.pop()
        print(t.data)
    if t is not None and hasattr(t, "right"):
        queue.append(t.right)
    if t is not None and hasattr(t, "left"):
        queue.append(t.left)

    if hasattr(rootNode, "right"):
        queue.append(rootNode.right)
    if rootNode is not None and hasattr(rootNode, "left"):
        printTree(rootNode.left, queue)



printTree(root, queue)

# print(root.data)

more about problem at http://www.geeksforgeeks.org/level-order-tree-traversal/
Comment