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 相关文章推荐
35个Python编程小技巧
Apr 01 Python
Python3实现从文件中读取指定行的方法
May 22 Python
Python模拟百度登录实例详解
Jan 20 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
如何使用python把ppt转换成pdf
Jun 29 Python
对Python中画图时候的线类型详解
Jul 07 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
Django多个app urls配置代码实例
Nov 26 Python
python之pygame模块实现飞机大战完整代码
Nov 29 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
用文本作数据处理
2006/10/09 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
jQuery $.each的用法说明
2010/03/22 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
用python与文件进行交互的方法
2018/03/01 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
离婚协议书范本样本
2014/08/19 职场文书
关于工作经历的证明书
2014/10/11 职场文书
幼师小班个人总结
2015/02/12 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
Java8中接口的新特性使用指南
2021/11/01 Java/Android
Win11 BitLocker 驱动器加密
2022/04/19 数码科技