python的二叉树应用
程序员文章站
2022-07-10 10:20:10
...
一 构建二叉树的结构
二 代码
classBTree:
def __init__(self,value):
self.left =None
self.data = value
self.right =None
def insertLeft(self,value):
self.left =BTree(value)
return self.left
def insertRight(self,value):
self.right =BTree(value)
return self.right
def show(self):
print(self.data)
#先序遍历
def preorder(node):
if node.data:
node.show()
if node.left:
preorder(node.left)
if node.right:
preorder(node.right)
#中序遍历
def inorder(node):
if node.data:
if node.left:
inorder(node.left)
node.show()
if node.right:
inorder(node.right)
#后序遍历
def postorder(node):
if node.data:
if node.left:
postorder(node.left)
if node.right:
postorder(node.right)
node.show()
if __name__ =='__main__':
Root=BTree('Root')
A =Root.insertLeft('A')
C = A.insertLeft('C')
D = A.insertRight('D')
F = D.insertLeft('F')
G = D.insertRight('G')
B =Root.insertRight('B')
E = B.insertRight('E')
print('***********************')
print('先序遍历')
print('***********************')
preorder(Root)
print('***********************')
print('中序遍历')
print('***********************')
inorder(Root)
print('***********************')
print('后序遍历')
print('***********************')
postorder(Root)
三 运行结构
***********************
先序遍历
***********************
Root
A
C
D
F
G
B
E
***********************
中序遍历
***********************
C
A
F
D
G
Root
B
E
***********************
后序遍历
***********************
C
F
G
D
A
E
B
Root
上一篇: python实现二叉树排序
下一篇: 算法 给定二叉树前序和中序序列重建二叉树