python图形化显示非搜索二叉树

来源:互联网 发布:linux ls查看文件大小 编辑:程序博客网 时间:2024/06/08 15:57
from binarytree import tree, bst, heap, pprint, Nodeclass MyNode(Node): def __init__(self, value, left=None, right=None):   super(MyNode, self).__init__(value)   self.__setattr__('left', left)   self.__setattr__('right', right) def construct_tree(pre_order, mid_order):   if len(pre_order) == 0:     return None   root_data = pre_order[0]   for i in range(0, len(mid_order)):     if mid_order[i] == root_data:       break   left  = MyNode.construct_tree(pre_order[1: 1 + i], mid_order[:i])   right = MyNode.construct_tree(pre_order[1 + i:], mid_order[i + 1:])   return MyNode(root_data, left, right)if __name__ == '__main__':   pre_order = [1,5,3,6,8,7]   mid_order = [5,1,6,8,3,7]   my_tree = MyNode.construct_tree(pre_order, mid_order)   pprint(my_tree)



用前序和中序结果画出二叉树,代码如上所示。

在python3.5下运行通过

原创粉丝点击