【问题标题】:Test case for finding the height of a binary tree求二叉树高度的测试用例
【发布时间】:2013-02-02 10:29:54
【问题描述】:

我编写了一个函数来查找二叉树的高度(即从根到叶的最长路径上的节点数)。

let rec height (t: 'a tree) : int =
begin match t with
| Empty -> 0
| Node (l, v, r) -> 1 + max (height 1) (height r)
end

我相信我的函数是正确的,但是当我运行我的测试时出现的语法错误说“这个函数应用于太多参数;也许你忘记了一个';'。

这是我的测试用例

let test () : bool =
height Node(Node(Empty, 1, Empty), 3, Node(Empty, 2, Node(Empty, 4, Empty))) = 3
;; run_test "Node(Node(Empty, 1, Empty), 3, Node(Empty, 2, Node(Empty, 4, Empty)))" test

我的测试用例有什么问题?

谢谢!

【问题讨论】:

    标签: ocaml


    【解决方案1】:

    考虑表达式

    height Node (Empty, 0, Empty)
    

    在 OCaml 中,相邻的值表示函数应用,它是左关联的。所以这是一样的:

    (height Node) (Empty, 0, Empty)
    

    以下将起作用:

    height (Node (Empty, 0, Empty))
    

    换句话说,您只需要添加括号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多