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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python制作钉钉加密/解密工具
Dec 07 Python
你真的了解Python的random模块吗?
Dec 12 Python
Python程序员面试题 你必须提前准备!
Jan 16 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
解决echarts中饼图标签重叠的问题
May 16 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
Python远程方法调用实现过程解析
Jul 28 Python
用python对excel查重
Dec 07 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
Jan 08 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数组无限分级数据的层级化处理代码
2012/12/29 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
python黑魔法之参数传递
2016/02/12 Python
python实现kNN算法
2017/12/20 Python
python对excel文档去重及求和的实例
2018/04/18 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
利用nohup来开启python文件的方法
2019/01/14 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
大学毕业自我鉴定范文
2014/02/03 职场文书
怎样填写就业意向
2014/04/02 职场文书
诚信考试标语
2014/06/24 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
基于Python实现将列表数据生成折线图
2022/03/23 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL