python3 二叉树遍历
来源:互联网 发布:网络拓扑设计文档 编辑:程序博客网 时间:2024/06/05 06:11
# 二叉树遍历 (此文用来纪念今天在 你好星球 面试被技术总监吊打,哈哈,还是要注重基础啊,不能忘)# 前序遍历:根节点->左子树->右子树# 中序遍历:左子树->根节点->右子树# 后续遍历:左子树->右子树->根节点# 二叉树构建如图# a# / \# b c# / \ \# d e f# / / / \# g h i j# 节点数据结构class Node: def __init__(self): self.father= None self.left= None self.right= None self.value= 0# 手撸二叉树 只为遍历 勿喷def generate_binary_tree(header): b = Node() c = Node() d = Node() e = Node() f = Node() g = Node() h = Node() i = Node() j = Node() b.value = 'b' c.value = 'c' d.value = 'd' e.value = 'e' f.value = 'f' g.value = 'g' h.value = 'h' i.value = 'i' j.value = 'j' header.left = b header.right = c b.father = header b.left = d b.right = e c.father = header c.right = f d.father = b d.left = g e.father = b e.left = h f.father = c f.left = i f.right = j g.father = d h.father = e i.father = f j.father = f# 前序遍历def preorder_traversal(header): print(header.value,',',end='') if header.left is not None: preorder_traversal(header.left) if header.right is not None: preorder_traversal(header.right)# 中序遍历def inorder_traversal(header): if header.left is not None: inorder_traversal(header.left) print(header.value,',',end='') if header.right is not None: inorder_traversal(header.right)# 后续遍历def postorder_traversal(header): if header.left is not None: postorder_traversal(header.left) if header.right is not None: postorder_traversal(header.right) print(header.value,',',end='')# 执行header = Node()header.value = 'a'generate_binary_tree(header)print('前序遍历')preorder_traversal(header)print('中序遍历')inorder_traversal(header)print('后序遍历')postorder_traversal(header)
运行结果
前序遍历a ,b ,d ,g ,e ,h ,c ,f ,i ,j ,
中序遍历g ,d ,b ,h ,e ,a ,c ,i ,f ,j ,
后序遍历g ,d ,h ,e ,b ,i ,j ,f ,c ,a ,
1 0
- python3 二叉树遍历
- python3 二叉树及单链表
- 二叉树遍历、分层遍历
- 遍历二叉树--二叉树
- 【树】遍历二叉树
- 二叉树遍历
- 二叉树遍历
- 二叉树的遍历
- (原创)遍历二叉树
- 二叉树遍历-php
- 查找--遍历二叉树
- 遍历二叉树
- 二叉树遍历规则
- 二叉树的遍历
- 二叉树遍历
- 遍历二叉树
- 二叉树遍历问题
- 二叉树遍历
- 熔断器设计模式
- C/C++_log2000_windows编程之第一个控制台程序项目part2
- java根据出生日期和当前时间计算年龄
- ZCMU—1676
- MyBatis中<resultMap>的<association>和<collection>标签的使用
- python3 二叉树遍历
- Hadoop项目实战-用户行为分析之编码实践
- 定时删除归档日志shell
- Android注解框架
- HTML5 Boilerplate
- 【安卓随笔】轻度自虐之使用CMake开发NDK(案例:YUV转RGB)
- 说说 JavaScript 的选择符 API
- 卷积神经网络的可视化
- Spring MVC 后台JAVA控制层如何 获取form 提交的参数