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抓取行政区划码的方法
Nov 28 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
python中reader的next用法
Jul 24 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
python列表切片和嵌套列表取值操作详解
Feb 27 Python
TensorFlow的自动求导原理分析
May 26 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
PHP中FTP相关函数小结
2016/07/15 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
一段多浏览器的"复制到剪贴板"javascript代码
2007/03/27 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
js获取form的方法
2015/05/06 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
python中的常量和变量代码详解
2018/07/25 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
银行个人求职自荐信范文
2013/12/16 职场文书
办公室经理岗位职责
2014/01/01 职场文书
个人自我鉴定总结
2014/03/25 职场文书
三八妇女节活动总结
2014/05/04 职场文书
行政文员岗位职责
2015/02/04 职场文书
新闻通讯稿模板
2015/07/22 职场文书
MySql数据库触发器使用教程
2022/06/01 MySQL