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服务器端收发请求的实现代码
Sep 29 Python
python单元测试unittest实例详解
May 11 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
Python实现自动发送邮件功能
Mar 02 Python
Python面向对象之继承代码详解
Jan 29 Python
python爬虫之urllib3的使用示例
Jul 09 Python
Python多继承原理与用法示例
Aug 23 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python读取表格类型文件代码实例
Feb 17 Python
python读取mysql数据绘制条形图
Mar 25 Python
python实现图像全景拼接
Mar 27 Python
Tensorflow加载Vgg预训练模型操作
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
php实现TCP端口检测的方法
2015/04/01 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
react路由配置方式详解
2017/08/07 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
浅谈Python的异常处理
2016/06/19 Python
python常用知识梳理(必看篇)
2017/03/23 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
大学生蛋糕店创业计划书
2014/01/13 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
学校教学管理制度
2015/08/06 职场文书
企业安全生产检查制度
2015/08/06 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers