python先序遍历二叉树问题

yipeiwu_com6年前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中SOAP项目的介绍及其在web开发中的应用

SOAP.py 客户机和服务器 SOAP.py 包含的是一些基本的东西。没有 Web 服务描述语言(Web Services Description Language,WSDL)或者任何...

python 打印对象的所有属性值的方法

如下所示: def prn_obj(obj): print '\n'.join(['%s:%s' % item for item in obj.__dict__.items()...

Python3.x版本中新的字符串格式化方法

我们知道Python3.x引入了新的字符串格式化语法。不同于Python2.x的 复制代码 代码如下: "%s %s "%(a,b)  Python3.x是 复制代码 代码...

python之pyqt5通过按钮改变Label的背景颜色方法

python之pyqt5通过按钮改变Label的背景颜色方法

使用setStyleSheet方法修改得到自己想要的字体,大小,颜色 self.lab = QLabel("标签字体大小颜色", self) self.lab.setGeometry...

详解python中xlrd包的安装与处理Excel表格

一、安装xlrd 地址 下载后,使用 pip install .whl 安装即好。 查看帮助: >>> import xlrd >>> help...