【发布时间】:2011-06-28 19:34:49
【问题描述】:
所以我有一个 SML 任务,我需要一些帮助才能开始。
问题是这样的
编写一个'a btree -> int类型的函数btree_size,它返回 二叉树的大小。 (二叉树的大小是 二叉树中的元素)。例如,btree_size (Node (Leaf, 1, Node (Leaf, 2, Leaf))) 应该返回 2。您的函数必须使用 提供了 btree_reduce 函数,最多 3 行。
btree_reduce 函数是这样的
(* A reduction function. *)
(* btree_reduce : ('b * 'a * 'b -> 'b) -> 'b -> 'a tree -> 'b) *)
fun btree_reduce f b bt =
case bt of
Leaf => b
| Node (l, x, r) => f (btree_reduce f b l, x, btree_reduce f b r)
到底如何创建一个 btree_size 函数,它接受一个 btree 并使用 reduce 函数来给我树的大小?
【问题讨论】:
标签: tree binary-tree sml reduce