トークン (この場合は 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))))
このバグの原因と、今後どのようにテストできるかを誰かに説明してもらえますか?