【发布时间】:2015-08-31 13:30:01
【问题描述】:
考虑一棵树,使得每个节点都包含一个整数。在方案中,树数据类型可以定义为
(define-type Tree
[leaf (val : number)]
[node (val : number)
(left : Tree)
(right : Tree)])
我想编写一个函数,给定一棵这样的树,如果每个叶子都大于从根到达叶子的节点路径中的数字总和,则返回 #t。
我正在考虑解决这个问题的方法是,将每个叶子的数量与从叶子到根的每个总和进行比较(即计算从叶子到根的每条路径的总和)。叶数小于或等于路径总和的第一条路径导致我返回#f。否则我必须搜索每一条路径。 这是最有效的方法吗? 深度优先搜索是实施此策略的最佳方式吗?
【问题讨论】:
-
如果它是一棵树,那么每个叶子肯定只有一条路径吗?
标签: tree scheme depth-first-search