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 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python3实现生成随机密码的方法
Aug 23 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Sublime开发python程序的示例代码
Jan 24 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
详解python中sort排序使用
Mar 23 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python高级property属性用法实例分析
Nov 19 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
python编写俄罗斯方块
Mar 13 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 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处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
用jscript实现新建word文档
2007/06/15 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
python 合并文件的具体实例
2013/08/08 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
《北京的春节》教学反思
2014/04/07 职场文书
暑期教师培训方案
2014/06/07 职场文书
写给医生的感谢信
2015/01/22 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
升学宴家长答谢词
2015/09/29 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript