我为节点制作了自定义类
class NodeTree(object):
def __init__(self, name = None, children = None):
self.name = name
self.children = children
并定义了一个创建树的函数(一个包含其子节点的节点)
def create_tree(d):
x = NodeTree()
for a in d.keys():
if type(d[a]) == str:
x.name = d[a]
if type(d[a]) == list:
if d[a] != []:
for b in d[a]:
x.add_child(create_tree(b))
return x
输入是一个 dict,其中一个参数用于节点名称和一个列表,其子节点与父节点的形式相同。该函数工作正常,我已经制作了证明它的方法,但我找不到正确遍历它并获得树的高度的方法。我不知道“高度”是否是正确的术语,因为我知道它可能是矛盾的,我需要将节点计为度量单位,如下所示:
parent
|
|
---------
| |
child child
这棵树的高度是 2,我已经尝试了一切,从类中的计数器到标签,一切似乎都退化了,我从来没有得到正确的高度。我应该如何处理?