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
投稿

猜你喜欢

  • FSO无效的过程调用或参数问题

    2010-03-25 21:49:00
  • Python中的pprint模块

    2022-02-07 17:02:42
  • python:关于文件加载及处理方式

    2021-03-12 10:17:30
  • 十个Python经典小游戏的代码合集

    2021-08-03 12:09:38
  • javascript 日期相减-在线教程(附代码)

    2024-04-18 09:45:00
  • 再谈“字符串拼接”的效率

    2009-04-30 12:48:00
  • MySQL中查询字段为空或者为null的方法

    2024-01-24 01:42:21
  • python实现坦克大战

    2021-01-09 19:18:53
  • Pytorch 中net.train 和 net.eval的使用说明

    2021-11-15 11:40:37
  • 分享:在存储过程中使用另一个存储过程返回的查询结果集的方法

    2024-01-16 13:03:57
  • Python编程语言的35个与众不同之处(语言特征和使用技巧)

    2023-11-21 23:09:25
  • PHP中的MYSQL常用函数

    2010-09-30 14:49:00
  • Windows server 2008 r2上安装MySQL5.7.10步骤

    2024-01-15 06:47:11
  • opera img onload重复执行

    2008-01-17 12:01:00
  • 将MySQL数据库移植为PostgreSQL

    2024-01-21 22:20:09
  • Golang 的defer执行规则说明

    2023-07-14 08:31:10
  • python画图系列之个性化显示x轴区段文字的实例

    2023-01-16 06:15:24
  • 六种php加密解密方法实例讲解

    2023-07-01 12:16:02
  • win10 安装mysql 8.0.18-winx64的步骤详解

    2024-01-24 06:54:04
  • 浅析Golang中的协程(goroutine)

    2024-04-29 13:05:08
  • asp之家 网络编程 m.aspxhome.com