二叉树的广度优先遍历实现方式,即层序遍历
#!/usr/bin/env python
#coding:utf-8
class TreeNode(object):
def __init__(self):
self.data = '#'
self.lchild = None
self.rchild = None
class Tree(TreeNode):
def __init__(self):
self.root = TreeNode()
self.myQueue = []
#Create a tree
def create_tree(self,tree):
data = raw_input('->')
if data == '#':
tree = None
else:
tree.data = data
tree.lchild = TreeNode()
self.create_tree(tree.lchild)
tree.rchild = TreeNode()
self.create_tree(tree.rchild)
def visit(self,tree):
#输入#代表空树
if tree.data is not '#':
print str(tree.data)+'\t'
def level_order(self,tree):
if tree == None:
return
myQueue = []
node = tree
myQueue.append(node)
while myQueue:
node=myQueue.pop(0)
print node.data
if node.lchild:
myQueue.append(node.lchild)
if node.rchild:
myQueue.append(node.rchild)