Clojure中的二进制搜索树

时间:2015-11-07 22:00:28

标签: clojure size binary-search-tree

我试图为BST实现添加功能

  (defn size
  "Return the number of nodes in a BST."
  [bst] 
    (cond (nil? bst) 0
    :else (+ 1 (+ size(:left bst)  size(:right bst)) ) )
  )

这看起来不错吗?

1 个答案:

答案 0 :(得分:1)

这里有些不对劲。您仍然以“标准”方式调用函数。 size(:left bst)会引发异常,您需要(size (:left bst))(周围的重要性以及函数名称后面的空格)。

第二件事 - 如果您有一个案例cond,则无需使用:else。只需使用if:

(if (nil? bst) 
  0
  (+ 1 (+ (size (:left bst)) (size (:right bst)))))