首页 > 解决方案 > 用 Python 计算元组二叉树中整数的总和

问题描述

我一直很难理解这个概念,而且我的教授没有很好地涵盖这个主题。这个问题需要我编写一个函数来计算构成由元组组成的二叉树的整数之和。

我提供了以下代码:

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

如果您能帮助我了解如何解决这个问题,我将永远感激您!

标签: pythontreebinarysumtuples

解决方案


如果您忘记了元组和其他实现细节并专注于树,

  • 如果树为空,则总和为 0
  • 否则,它是“此节点”中的数字和子树的总和。

在 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]

推荐阅读