python的二叉树应用
来源:互联网 发布:linux 启动oracle进程 编辑:程序博客网 时间:2024/06/14 14:22
一 构建二叉树的结构
![](http://dl2.iteye.com/upload/attachment/0125/8468/208131bb-2e01-3648-95e2-5003e3f3fcc5.png)
二 代码
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
阅读全文
0 0
- python的二叉树应用
- 二叉树的应用
- 二叉树的应用
- 二叉树的应用
- 二叉树的应用
- 二叉树的应用
- 二叉树的应用
- 二叉树及二叉树的应用
- 二叉树的应用—二叉树遍历的应用
- asp二叉树的应用
- 二叉树的遍历应用
- 二叉树遍历的应用
- 二叉查找树的应用
- 搜索二叉树的应用
- 二叉树的应用--哈夫曼树
- 二叉树的实践应用
- 二叉树的基本应用
- 二叉树的操作应用
- python列表推导式
- CAP理论和Base理论
- 数据库建模
- python实现二叉树排序
- SrpingBoot集成MyBatis
- python的二叉树应用
- 3D数学基础学习
- python类的初识
- 设计模式之禅12
- WCF学习系列之[老老实实学WCF] 第一篇 Hello WCF (转自CSDN宋业飞)
- python3发起一个http请求
- TCP协议中的三次握手和四次挥手(图解)
- Huffman树和编码
- python图的应用