二叉树的先序遍历,后续遍历,中序遍历的实现 代码:
#coding:utf-8
class Btree:
def __init__(self,root):
self.root = root
self.left = None
self.right = None
def inordertree(tree,array = []):
#中序遍历
if tree is None:
return []
else:
inordertree(tree.left,array)
array.append(tree.root)
inordertree(tree.right, array)
return array
def postordertree(tree,array = []):
#后续遍历
if tree is None:
return []
else:
postordertree(tree.left,array)
postordertree(tree.right,array)
array.append(tree.root)
return array
def preordertree(tree,array = []):
#先序遍历
if tree is None:
return []
else:
array.append(tree.root)
preordertree(tree.left,array)
preordertree(tree.right, array)
return array
if __name__ == '__main__':
'''
10
5 15
2, 5 22
1
'''
tree = Btree(10)
tree.left = Btree(5)
tree.right = Btree(15)
tree.left.left = Btree(2)
tree.left.right = Btree(5)
tree.right.right = Btree(22)
tree.left.left.left = Btree(1)
print(inordertree(tree, array=[]))
print(postordertree(tree, array=[]))
print(preordertree(tree, array=[]))