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中的内存泄漏
Apr 23 Python
Python函数的周期性执行实现方法
Aug 13 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
numpy求平均值的维度设定的例子
Aug 24 Python
Python实现将蓝底照片转化为白底照片功能完整实例
Dec 13 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python 实现分组求和与分组累加求和代码
May 18 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
用Python 执行cmd命令
Dec 18 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 mysql数据库操作类
2008/06/04 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
浅谈JavaScript函数节流
2014/12/09 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
AngularJS语法详解
2015/01/23 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
JS字符串常用操作方法实例小结
2019/06/24 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
促销活动总结怎么写
2014/06/25 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
2014年图书室工作总结
2014/12/09 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书