red_black_tree.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:study 作者: bailiyang 项目源码 文件源码
def print_tree(self, node = None):
        if node is None:
            #?????
            import pygraphviz
            self.printer = pygraphviz.AGraph(directed = True, strict = False)
            #????
            self.printer.node_attr['shape'] = 'circle'
            self.printer.node_attr['color'] = 'red'
            self.printer.node_attr['fontcolor'] = 'white' 
            self.printer.node_attr['style'] = 'filled'

            #?????
            node = self.tree
            self.printer.add_node(node.data, color = node.colour)

        if node.Lchild or node.Rchild:
            if node.Lchild:
                #?????????????????
                self.printer.add_node(node.Lchild.data, color = node.Lchild.colour)
                #?????
                self.printer.add_edge(node.data, node.Lchild.data, label = str(node.Lchild.father))
                #?????
                self.print_tree(node.Lchild)
            else:
                #?????????????
                self.printer.add_node('Lchild ' + str(node.data), style = 'invis')
                self.printer.add_edge(node.data, 'Lchild ' + str(node.data), style = 'invis')

            if node.Rchild:
                #?????????????????
                self.printer.add_node(node.Rchild.data, color = node.Rchild.colour)
                #?????
                self.printer.add_edge(node.data, node.Rchild.data, label = str(node.Rchild.father))
                #?????
                self.print_tree(node.Rchild)
            else:
                #?????????????
                self.printer.add_node('Rchild ' + str(node.data), style = 'invis')
                self.printer.add_edge(node.data, 'Rchild ' + str(node.data), style = 'invis')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号