python二叉树遍历的实现方法

 更新时间:2013年11月21日 14:14:07   作者:  
这篇文章主要介绍了python二叉树遍历的实现方法,使用了三种遍历:先序遍历,中序遍历,后序遍历,方法大家参考使用
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

复制代码 代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

class TreeNode(object):
    def __init__(self,data=0,left=0,right=0):
        self.data = data
        self.left = left
        self.right = right


class BTree(object):
    def __init__(self,root=0):
        self.root = root

    def is_empty(self):
        if self.root is 0:
            return True
        else:
            return False

    def preOrder(self,treenode):
        if treenode is 0:
            return
        print treenode.data
        self.preOrder(treenode.left)
        self.preOrder(treenode.right)

    def inOrder(self,treenode):
        if treenode is 0:
            return
        self.inOrder(treenode.left)
        print treenode.data
        self.inOrder(treenode.right)

    def postOrder(self,treenode):
        if treenode is 0:
            return
        self.postOrder(treenode.left)
        self.postOrder(treenode.right)
        print treenode.data


n1 = TreeNode(data=1)
n2 = TreeNode(2,n1,0)
n3 = TreeNode(3)
n4 = TreeNode(4)
n5 = TreeNode(5,n3,n4)
n6 = TreeNode(6,n2,n5)
n7 = TreeNode(7,n6,0)
n8 = TreeNode(8)
root = TreeNode('root',n7,n8)

bt = BTree(root)
print 'preOrder......'
print bt.preOrder(bt.root)
print 'inOrder......'
print bt.inOrder(bt.root)
print 'postOrder.....'
print bt.postOrder(bt.root)

结果:

preOrder......
root
7
6
2
1
5
3
4
8

inOrder......
1
2
6
3
5
4
7
root
8

postOrder.....
1
2
3
4
5
6
7
8
root

相关文章

  • Python模拟登录的多种方法(四种)

    Python模拟登录的多种方法(四种)

    这篇文章主要介绍了Python模拟登录的多种方法,大概给大家提供了四种方法,每种方法给大家介绍的都很详细,感兴趣的朋友跟随程序员之家小编一起看看吧
    2018-06-06
  • Python+Pyecharts实现散点图的绘制

    Python+Pyecharts实现散点图的绘制

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。本文将利用Python Pyecharts实现散点图的绘制,需要的可以参考一下
    2022-06-06
  • python实现俄罗斯方块

    python实现俄罗斯方块

    这篇文章主要为大家详细介绍了python实现俄罗斯方块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 浅谈python 读excel数值为浮点型的问题

    浅谈python 读excel数值为浮点型的问题

    今天小编就为大家分享一篇浅谈python 读excel数值为浮点型的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python去除文件中空格、Tab及回车的方法

    python去除文件中空格、Tab及回车的方法

    这篇文章主要介绍了python去除文件中空格、Tab及回车的方法,涉及Python针对文件与字符串操作的相关技巧,需要的朋友可以参考下
    2016-04-04
  • Python使用watchfiles实现监控目录变更

    Python使用watchfiles实现监控目录变更

    在工作中难免会碰到这样的需求,监控指定目录,下面小编就来和大家介绍一下如何利用watchfiles 模块实现监控目录的变更,感兴趣的可以了解下
    2023-09-09
  • Jinja2实现模板渲染与访问对象属性流程详解

    Jinja2实现模板渲染与访问对象属性流程详解

    要了解jinja2,那么需要先理解模板的概念。模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强,并且更加容易理解和维护。模板简单来说就是一个其中包含占位变量表示动态部分的文,模板文件在经过动态赋值后,返回给用户
    2023-03-03
  • python?函数、变量中单下划线和双下划线的区别详解

    python?函数、变量中单下划线和双下划线的区别详解

    本文主要介绍了python?函数、变量中单下划线和双下划线的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python?pandas?DataFrame数据拼接方法

    Python?pandas?DataFrame数据拼接方法

    我们都知道在使用pandas处理数据的时候,往往会需要合并两个或者多个DataFrame的操作,下面这篇文章主要给大家介绍了关于Python?pandas?DataFrame数据拼接方法的相关资料,需要的朋友可以参考下
    2022-07-07
  • Python unittest如何生成HTMLTestRunner模块

    Python unittest如何生成HTMLTestRunner模块

    这篇文章主要介绍了Python unittest如何生成HTMLTestRunner模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论

?


http://www.vxiaotou.com