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中用于返回绝对值的abs()方法
May 14 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
Python Nose框架编写测试用例方法
Oct 26 Python
python flask中静态文件的管理方法
Mar 20 Python
Python寻找两个有序数组的中位数实例详解
Dec 05 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
Python最小二乘法矩阵
Jan 02 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
Python基础类继承重写实现原理解析
Apr 03 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
python中翻译功能translate模块实现方法
Dec 17 Python
M1芯片安装python3.9.1的实现
Feb 02 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
使用数据库保存session的方法
2006/10/09 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python中base64与xml取值结合问题
2019/12/22 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
活动总结怎么写
2014/04/28 职场文书
法制教育演讲稿
2014/09/10 职场文书
收入证明怎么写
2015/06/12 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
九年级语文教学反思
2016/03/03 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python