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两种遍历字典(dict)的方法比较
May 29 Python
Python中变量交换的例子
Aug 25 Python
Python实现单词拼写检查
Apr 25 Python
Python做文本按行去重的实现方法
Oct 19 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
Python运维自动化之nginx配置文件对比操作示例
Aug 29 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
Selenium webdriver添加cookie实现过程详解
Aug 12 Python
python 解决微分方程的操作(数值解法)
May 26 Python
python实现自定义日志的具体方法
May 28 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
PHP设计聊天室步步通
2006/10/09 PHP
php抓即时股票信息
2006/10/09 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
PHP常用技巧汇总
2016/03/04 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
js 分栏效果实现代码
2009/08/29 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
XENON基于JSON变种
2010/07/27 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
基于Python实现粒子滤波效果
2020/12/01 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
迟到检讨书500字
2014/02/05 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
我的老师教学反思
2014/05/01 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
学期个人自我总结
2015/02/13 职场文书