python先序遍历二叉树问题


Posted in Python onNovember 10, 2017

问题

如何遍历一个二叉树

遍历二叉树就是访问二叉树的每一个节点

二叉树父结点下先左访问,先序遍历(根左右)

例如:遍历以下的二叉树

python先序遍历二叉树问题

遍历结果:ABDECF

Python代码示例

# !/usr/bin/env python
# -*-encoding: utf-8-*-
# author:LiYanwei
# version:0.1


class TreeNode(object):
  '''
  二叉树类
  '''
  def __init__ (self, data, left = None, right = None):
    self.data = data
    self.left = left
    self.right = right

  def __str__(self):
    return str(self.data)

def createTree():
  '''
  创建二叉树函数
  '''
  # 创建如图的二叉树
  # 1.创建节点
  A = TreeNode('A')
  B = TreeNode('B')
  C = TreeNode('C')
  D = TreeNode('D')
  E = TreeNode('E')
  F = TreeNode('F')
  # 列表解析
  # A, B, C, D, E, F = [TreeNode(x) for x in 'ABCDEF']

  # 2.创建节点之间的关系
  A.left = B
  A.right = C
  B.left = D
  B.right = E
  C.left = F
  return A


def preOrder(node):
  '''
  先序遍历 先左后右 使用递归
  :param node:
  :return:
  '''
  if node is None:
    return
  print node.data
  preOrder(node.left)
  preOrder(node.right)

if __name__ == '__main__':
  # 二叉树的创建
  root = createTree()
  # 二叉树的遍历
  preOrder(root)

总结

以上就是本文关于python先序遍历二叉树问题的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python3调用微信企业号API发送文本消息代码示例、浅谈python中的占位符、python实现人脸识别代码等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

Python 相关文章推荐
解决Python中由于logging模块误用导致的内存泄露
Apr 23 Python
Python实现命令行通讯录实例教程
Aug 18 Python
Python常用算法学习基础教程
Apr 13 Python
Python模块搜索路径代码详解
Jan 29 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
python 调用有道api接口的方法
Jan 03 Python
python实现AES加密解密
Mar 28 Python
Pytorch模型转onnx模型实例
Jan 15 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
通过实例解析Python return运行原理
Mar 04 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
python中可以声明变量类型吗
Jun 18 Python
简单了解OpenCV是个什么东西
Nov 10 #Python
python的文件操作方法汇总
Nov 10 #Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 #Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 #Python
Python实现图片滑动式验证识别方法
Nov 09 #Python
浅谈python中的占位符
Nov 09 #Python
速记Python布尔值
Nov 09 #Python
You might like
php4的session功能评述(一)
2006/10/09 PHP
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP 命名空间实例说明
2011/01/27 PHP
PHP查询分页的实现代码
2017/06/09 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python 调用钉钉机器人的方法
2019/02/20 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
python中bytes和str类型的区别
2019/10/21 Python
python数据化运营的重要意义
2019/11/25 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
python实现PCA降维的示例详解
2020/02/24 Python
深入理解Python 多线程
2020/06/16 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
c语言常见笔试题总结
2016/09/05 面试题
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
电子信息科学专业自荐信
2014/01/30 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书