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中的descriptor描述器的作用及用法
Jun 27 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
Python基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
Python探索之爬取电商售卖信息代码示例
Oct 27 Python
python实现简易云音乐播放器
Jan 04 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
python 将大文件切分为多个小文件的实例
Jan 14 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
python 默认参数相关知识详解
Sep 18 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
Python文件名匹配与文件复制的实现
Dec 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
PHP 工厂模式使用方法
2010/05/18 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
Python标准库之循环器(itertools)介绍
2014/11/25 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
Python 切分数组实例解析
2019/11/07 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
教师专业自荐书范文
2014/02/10 职场文书
中国好声音广告词
2014/03/18 职场文书
我的中国心演讲稿
2014/09/04 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
师德师风事迹材料
2014/12/20 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python