0

Python言語を使用して二分決定木をトラバースする方法。ツリーが与えられた場合、ルートから必要なリーフに移動する方法を知りたい必要なリーフの機能が辞書形式で指定されていると仮定し、機能リストに記載されている詳細を使用して各ノードの質問に答えてルートからリーフに移動する必要があります..デシジョンツリーノードの形式は((質問)(左ツリー)(右ツリー))です。トラバースするときは、各ノードで質問に答え、左または右を選択してリーフまでトラバースする必要がありますか?

4

2 に答える 2

2
def walk(node):
    answer = ask(node.question)
    if answer == left:
        walk(node.left_tree)
    else:
        walk(node.right_tree)

def ask(question):
       # get answer somehow
       # depending on the answer choose which subtree to traverse
       return answer
于 2010-05-26T09:48:04.637 に答える
0

@TheMachineCharmer は正しいです。ここでは再帰性がキーワードです。

@TheMachineCharmer によって与えられた素敵な関数に少しリターンを追加します (答えが左でも右でもない簡単なケース)

def walk(node):
    answer = ask(node.question)
    if answer == left:
        walk(node.left_tree)
    else:
        walk(node.right_tree)
    return answer

このようにして、ノードに本当の答えが含まれている場合、それが返されます。

于 2010-05-26T11:36:53.733 に答える