【问题标题】:Tree class implementation with node and leaf具有节点和叶的树类实现
【发布时间】:2016-03-28 13:30:02
【问题描述】:
tree = Node ("one",
             Node ("two", Leaf ("three"), Leaf ("four")),
             Node ("five", Leaf ("six"), Leaf ("seven")))

试图声明一个具有 2 个子类 Node 和 Leaf 的 Tree 类来处理树对象

class Tree:
    def __init__(self, root):
        self.root = root

# some functions
#def inorder(self, visitor):
#    Node.inorder(self.left, visitor)
#    visitor(self.data)
#    Node.inorder(self.right, visitor)

#def fns(tree):
#    return

class Node (Tree):
    def __init__(self, value, left, right):
        self.left = left
        self.right = right
        self.value = value

class Leaf (Tree):
    def __init__(self, value):
        self.value = value

这是正确的实现方式吗?

【问题讨论】:

  • 对于二叉树,是的。

标签: python algorithm data-structures tree


【解决方案1】:

这将是二叉树的正确实现。但请记住一件事,如果您更改了树的根,您将需要更新该树中的每个节点和叶子。

self.root 是一个坏主意,以防您创建子树,然后将其添加到另一棵树中。但是,如果您不打算做这样的事情,这将是一个好主意。

【讨论】:

    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2020-06-10
    相关资源
    最近更新 更多