0

トークン (この場合は 1) を探しているときに、ツリーで訪れたノードの数をカウントする必要があります。これまでのところ、私は思いついた:

def search_recursive(node,rounds=0):
    if len(node)==2:
         if node[1]==1:
             print rounds
    else:
         rounds += 1
         huff_search_recursive(node[1],rounds)
         huff_search_recursive(node[2],rounds)

ただし、次のようなものにラウンドを割り当てようとすると:

def search_recursive(node,rounds=0):
    if len(node)==2:
        if node[1]==1:
            return rounds
    else:
        rounds += 1
        huff_search_recursive(node[1],rounds)
        huff_search_recursive(node[2],rounds)

Python は、任意の変数に None を割り当てます。例えば。

rounds = search_recursive(node)

ノードの例は次のとおりです。

node = (1.0, (0.5, 0), (0.5, (0.25, 0), (0.25, (0.125, 1), (0.125, 0))))

このバグの原因と、今後どのようにテストできるかを誰かに説明してもらえますか?

4

1 に答える 1