所以我在SML中有一个任务,我需要一些帮助才能开始。
问题就像这样
写一个'a btree - >类型的函数btree_size返回的int 二叉树的大小。 (二叉树的大小是数字 二叉树中的元素)。例如,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函数来给我树的大小?
答案 0 :(得分:2)
由于这是一个家庭作业,我将不会给出直接答案。 :)
我将按以下步骤进行:
当然,这是众多方式中的一种。