0
私は、ファミリーツリーデータ(人のキー名、それは値 - 子供)を持つ辞書を持っています。 与えられたメンバから別のメンバへの再帰的な深さを取得したい(get_depth(from_person、to_person))。Python、あるメンバーから別のメンバーにファミリーツリーの深さを計算する
私は、ファミリーツリーデータ(人のキー名、それは値 - 子供)を持つ辞書を持っています。 与えられたメンバから別のメンバへの再帰的な深さを取得したい(get_depth(from_person、to_person))。Python、あるメンバーから別のメンバーにファミリーツリーの深さを計算する
DFSを選択すると、奥行きを容易に把握できるようになります。
def get_depth(root, target):
if root == target:
return 0
if not d[root]:
return None
for child in d[root]:
depth = get_depth(child, target)
if depth is not None:
return 1 + depth
return None
最後にreturn
は厳密には必要ありませんが、私はこれらのことを綴っています。お気軽に質問してください。しかし、これはかなり自明です。あなたは-1
でNone
交換し、その後if depth >= 0
があなたの毒選んでチェックをより快適に感じるかもしれません。使用方法については幅優先探索や深さ優先探索 –
@PatrickHaughを(深さ優先または-first幅)私は最初の深さをprefeerたいです、私は両方を理解しようとしているので、より良いです:) – SyntaxError