zoukankan      html  css  js  c++  java
  • python数据结构之二叉树遍历的实现

    本篇是实现二叉树的三种遍历,先序遍历,中序遍历,后序遍历

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

  • 相关阅读:
    修改MySQL数据文件的位置
    服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。
    索引的讲解
    运行php程序时,浏览器跳出打开和保存提示框
    ora-4031错误
    MySQL_Oracle_事物的隔离级别
    GNU与Linux
    计算机网络_第一章
    Linux网卡高级命令
    Linux RAID简介
  • 原文地址:https://www.cnblogs.com/yupeng/p/3414451.html
Copyright © 2011-2022 走看看