import Queue
class node(object):
def __init__(self,data=None,left=None,right=None):
self.data=data
self.left=left
self.right=right
def print_by_layer(tree):
if not tree:
return
q = Queue.Queue()
q.put(tree)
while not q.empty():
size = q.qsize()
for i in range(size):
t = q.get()
print t.data,
if t.left:
q.put(t.left)
if t.right:
q.put(t.right)
print ""
if __name__=='__main__':
tree=node('D',node('B',node('A'),node('C')),node('E',right=node('G',node('F'))))
print_by_layer(tree)