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 相关文章推荐
学习python的几条建议分享
Feb 10 Python
python处理大数字的方法
May 27 Python
浅析python中的分片与截断序列
Aug 09 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
python下载库的步骤方法
Oct 12 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
基于python和flask实现http接口过程解析
Jun 15 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 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
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
js 函数的副作用分析
2011/08/23 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python中logging模块的用法实例
2014/09/29 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
一份婚庆公司创业计划书
2014/01/11 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
精彩广告词大全
2014/03/19 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
个人授权委托书
2014/09/15 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
假期安全教育广播稿
2014/10/04 职场文书
政协会议宣传标语
2014/10/09 职场文书
2016年教代会开幕词
2016/03/04 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python