python - 用 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
如果您能帮助我了解如何解决这个问题,我将永远感激您!
解决方案
如果您忘记了元组和其他实现细节并专注于树,
- 如果树为空,则总和为 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]
推荐阅读
- ffmpeg - CRF/CQP 与 2pass 不兼容。FFmpeg 错误
- postgresql - json的postgres数组,获取特定键的所有唯一值
- image - Pandoc md to pdf:在分页符之前插入图像时保持顺序
- ios - 使用 Realm 查询结果作为 UITableView 节标题
- javascript - 应用程序向我吐回数字,即使它应该返回另一个值
- angular - 重定位测试时,带有 Angular 项目的 Karma 会返回空的代码覆盖率报告
- python - 问题匹配部分下划线的字符串
- sockets - 如何衡量或理解 websocket/socket 应用程序?
- kubernetes - 在一组副本中选择一个 Kubernetes pod 来执行任务
- python - 根据值在 df 中创建具有星期几和星期几的列