python二叉树遍历的实现方法

时间:2021-09-19 03:53:14 


#!/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,二叉树
0
投稿

猜你喜欢

  • Python中的布尔类型bool

    2023-08-11 13:10:00
  • Django框架登录加上验证码校验实现验证功能示例

    2023-05-09 10:00:34
  • python获取当前计算机cpu数量的方法

    2023-08-01 14:20:03
  • python文件写入write()的操作

    2023-11-10 04:33:11
  • python实现生成Word、docx文件的方法分析

    2021-03-01 07:49:53
  • python 统计代码行数简单实例

    2022-05-08 21:04:34
  • 三步实现Django Paginator分页的方法

    2022-09-22 20:15:31
  • Go语言变量与基础数据类型详情

    2023-08-30 03:13:16
  • php通过exif_read_data函数获取图片的exif信息

    2023-10-27 09:01:44
  • sqlserver 修改列名及表名的sql语句

    2012-07-11 15:58:46
  • JS不同加载方式下的window.onload

    2009-05-21 18:09:00
  • 解决python打不开文件(文件不存在)的问题

    2021-10-15 02:39:46
  • 如何利用Fabric自动化你的任务

    2023-02-25 12:37:04
  • PyQt5每天必学之组合框

    2023-08-30 07:55:06
  • js对象基础实例分析

    2023-09-03 12:07:56
  • javascript preload&lazy load

    2023-09-01 06:15:43
  • Python实现数据可视化案例分析

    2022-09-07 17:58:38
  • suggest项目总结-用户体验篇

    2008-01-30 20:04:00
  • python Selenium等待元素出现的具体方法

    2022-02-22 02:47:20
  • 打造设计你自己的字体 Ⅱ

    2008-03-14 07:48:00
  • asp之家 网络编程 m.aspxhome.com