python2.7

class Node(object):
def __init__(self,data,left,right):
self.data = data
self.left = left
self.right = right
class Tree(object):
def __init__(self,data):
self.root = Node(data,None,None)
self.size = 1
def print_cengci(self):
"""
根--->左--->右 (弹出根)
左--->右--->左左--->左右(弹出左)
右--->左左--->左右--->右左--->右右
"""
stack = [self.root]
while stack:
temp = stack.pop(0)
print(temp.data+' ',end=' ')
if temp.left:
stack.append(temp.left)
if temp.right:
stack.append(temp.right)
if __name__ == '__main__':
print('create tree')
tree = Tree(1)
tree.root.left = Node(2,None,None)
tree.root.right = Node(3,None,None)
tree.root.left.left = Node(4,None,None)
tree.root.left.right = Node(5,None,None)
tree.root.right.left = Node(6,None,None)
tree.root.right.right = Node(7,None,None)
tree.root.left.left.left = Node(8,None,None)
tree.root.left.right.right = Node(9,None,None)
tree.root.right.left.right = Node(10,None,None)
tree.root.right.right.left = Node(11,None,None)
tree.root.right.right.right = Node(12,None,None)
print('tree.root.data:',tree.root.data)
print('tree.root.left.data:',tree.root.left.data)
print('tree.root.left.left.data:',tree.root.left.left.data)
print('tree.root.right.right.right.data',tree.root.right.right.right.data)
print('cengcibianli:',tree.print_cengci())
