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的Twisted框架编写非阻塞程序的代码示例
May 25 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
Python实现的排列组合计算操作示例
Oct 13 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
python3 删除所有自定义变量的操作
Apr 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源代码
2013/06/26 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
IE中createElement需要注意的一个问题
2010/07/13 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
Python实现简单多线程任务队列
2016/02/27 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
自荐信结尾
2013/10/27 职场文书
女大学生个人求职信
2013/12/09 职场文书
企业安全标语
2014/06/07 职场文书
公司食堂管理制度
2015/08/05 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
Elasticsearch 基本查询和组合查询
2022/04/19 Python
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript