你好,游客 登录 注册 搜索
背景:
阅读新闻

二叉树算法及 GRAPHVIZ 可视化

[日期:2016-04-12] 来源:极客头条  作者: [字体: ]
from graphviz import Digraph
import sys
from uuid import uuid1

class Tree(object):
    """二叉树,定义递归遍历方法
    """
    _visit = lambda node: sys.stdout.write("{} ".format(node.data))
    def __init__(self, data=None, left=None, right=None):
        self.data = data
        self.left = left
        self.right = right
        
        # _nid as node id 
        self._nid = str(id(self))
    def pre_order_recursive(self, visit=None):
        if not visit:
            visit = type(self)._visit
        if self:
            visit(self)
        if self.left:
            self.left.pre_order_recursive(visit)
        if self.right:
            self.right.pre_order_recursive(visit)
    def in_order_recursive(self, visit=None):
        if not visit:
            visit = type(self)._visit
        if self.left:
            self.left.in_order_recursive(visit)
        if self:
            visit(self)
        if self.right:
            self.right.in_order_recursive(visit)
    def post_order_recursive(self, visit=None):
        if not visit:
            visit = type(self)._visit
        if self.left:
            self.left.post_order_recursive(visit)
        if self.right:
            self.right.post_order_recursive(visit)
        if self:
            visit(self)




收藏 推荐 打印 | 录入:elainebo | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款