我一直很难理解这个概念,而我的教授并没有很好地涵盖这个话题。这个问题需要我编写一个函数来计算组成元组的二叉树的整数之和。
为我提供了以下代码:
node_one = (None, 1, None)
node_two = (node_one, 2, node_one)
node_three = (node_two, 3, None)
node_four = (node_three, 4, node_three)
我需要编写一个接受node_four作为参数并返回树中整数计数的函数,如下所示:
def TreeSum(t):
#fill in
TreeSum(node_four) # This should return 18
如果您能帮助我理解如何解决这个问题,请您永远感激!
答案 0 :(得分:1)
如果您忘记了所有有关元组和其他实现细节的信息,而只关注树,则
在Python中:
def tree_sum(t):
return 0 if is_empty(t) else data(t) + tree_sum(left(t)) + tree_sum(right(t))
请注意,这完全与树的表示方式无关。
现在我们可以为“元组树”添加与树相关的功能:
def is_empty(t):
return t is None
def data(t):
return t[1]
def left(t):
return t[0]
def right(t):
return t[2]
答案 1 :(得分:0)
我解决了提示! 这是有效的解决方案:
sum = 0
def TreeSum(t):
global sum
for i in range(len(t)):
if t[i] == node_three:
TreeSum(node_three)
elif t[i] == node_two:
TreeSum(node_two)
elif t[i] == node_one:
TreeSum(node_one)
elif t[i] == None:
pass
else:
sum += t[i]
return sum
TreeSum(node_four) # This should return 18