当前位置: 移动技术网 > IT编程>脚本编程>Python > python二叉树遍历的实现方法

python二叉树遍历的实现方法

2019年04月02日  | 移动技术网IT编程  | 我要评论

凡达移民,我的好色班主任,邓丽欣图片

复制代码 代码如下:

#!/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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网