このツリー構造のすべてのレベルを再帰的に解析する最良の方法は何ですか? 3つのレベルが最初ですが、残りのデータをどのように解析する必要がありますか?これは私が完了できなかったコーディリティテストからのものです。質問にはそれ以上のものがありましたが、これは私が立ち往生した場所です。一般的にすべてのレベルのツリーを再帰的に解析する
tree = (5, (8, (12, None, None), (2, None, None)),(9, (7, (1, None, None), None), (4, (3, None, None), None)))
def recurse(T):
calc = 0
def do_calc(T, calc):
if T ==():
return calc
calc += 1
return do_calc(T[1:], calc)
return do_calc(T, calc)
print recurse(tree)
その解決策を使ってノードの値を合計することはできますか? –
デフtree_depth(ノード): \tでisinstance(ノード、タプル)がFalseの場合: \t \tタイプ(ノード)<> int型の場合: \t \tリターン0 \t \tリターンノード他 \t: \t \tリターン合計(ノード内のサブノードのtree_depth(サブノード)) \t print tree_depth(tree) –
@MichaelT、はい、解決策は、あなたのコメントで与えたように、いくつかの小さな更新でノード値の合計に使用できます"type(node)<> int"を "instance(node、int)に変更するにはF alse "は<>として推奨されていません)。試してみてください –