ノード用のカスタムクラスを作成しました
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
入力は、ノード名の 1 つの引数を持つ dict と、親と同じ形式の子を持つリストです。関数は正常に動作し、それを証明するメソッドを作成しましたが、それを正しくトラバースしてツリーの高さを取得する方法が見つかりません。「高さ」が正しい用語であるかどうかはわかりません。あいまいな可能性があることはわかっているため、次のようにノードを測定単位としてカウントする必要があります。
parent
|
|
---------
| |
child child
このツリーの高さは 2 です。カウンターからクラスのタグまで、すべてを試しましたが、すべてが縮退しているようで、適切な高さが得られません。どのようにアプローチすればよいですか?