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中遍历字典过程中更改元素导致异常的解决方法
May 12 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Python 3中print函数的使用方法总结
Aug 08 Python
图解Python变量与赋值
Apr 03 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
浅析NumPy 切片和索引
Sep 02 Python
python re模块常见用法例举
Mar 01 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
一个MYSQL操作类
2006/11/16 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
yii的CURD操作实例详解
2014/12/04 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
自动更新作用
2006/10/08 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
python反编译学习之字节码详解
2019/05/19 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
赔偿协议书范本
2014/04/15 职场文书
教师节晚会主持词
2015/06/30 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
早恋主题班会
2015/08/14 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
图文详解matlab原始处理图像几何变换
2021/07/09 Python