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装饰器使用示例及实际应用例子
Mar 06 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
Python中安装easy_install的方法
Nov 18 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 Python
python os.fork() 循环输出方法
Aug 08 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
Python+PyQt5实现灭霸响指功能
May 25 Python
Django model class Meta原理解析
Nov 14 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
PHP基础知识回顾
2012/08/16 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP模块化安装教程
2016/06/01 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
php实现数字补零的方法总结
2018/09/12 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
FCK调用方法..
2006/12/21 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
2013/08/01 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
总经理职责
2013/12/22 职场文书
商场经理竞聘演讲稿
2014/01/01 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
2015年党建工作总结
2015/03/30 职场文书
停水通知
2015/04/16 职场文书
护士岗位竞聘书
2015/09/15 职场文书