python二叉树遍历的实现方法


Posted in Python onNovember 21, 2013
#!/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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
python 测试实现方法
Dec 24 Python
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
如何获取Python简单for循环索引
Nov 21 Python
Python values()与itervalues()的用法详解
Nov 27 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
Python3实现建造者模式的示例代码
Jun 28 Python
如何使用 Flask 做一个评论系统
Nov 27 Python
用Python制作音乐海报
Jan 26 Python
python热力图实现简单方法
Jan 29 Python
python实现简易名片管理系统
Apr 11 Python
python二叉树的实现实例
Nov 21 #Python
python冒泡排序算法的实现代码
Nov 21 #Python
python选择排序算法的实现代码
Nov 21 #Python
python插入排序算法的实现代码
Nov 21 #Python
python快速排序代码实例
Nov 21 #Python
python二分法实现实例
Nov 21 #Python
Python列表推导式的使用方法
Nov 21 #Python
You might like
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
Python线性回归实战分析
2018/02/01 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Python新手学习标准库模块命名
2020/05/29 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
毕业生自荐信如何写
2014/03/24 职场文书
创建青年文明号材料
2014/05/09 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
计划生育责任书
2015/05/09 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
如何使用python包中的sched事件调度器
2022/04/30 Python