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中的闭包实例详解
Aug 29 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
使用pycharm生成代码模板的实例
May 23 Python
Django中的Model操作表的实现
Jul 24 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
python-pyinstaller、打包后获取路径的实例
Jun 10 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 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 生成文字png图片的代码
2011/04/17 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
node.js中npm包管理工具用法分析
2020/02/14 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
python中如何使用insert函数
2020/01/09 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
文秘自荐信
2013/10/20 职场文书
汽车检测与维修专业求职信
2013/10/30 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
社区禁毒工作方案
2014/06/02 职场文书
2014国庆节标语口号
2014/09/19 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js