【问题标题】:Binary Search Tree in ClojureClojure 中的二叉搜索树
【发布时间】:2015-11-07 22:00:27
【问题描述】:

我正在尝试为 BST 实现添加功能

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

这看起来对吗?

【问题讨论】:

  • 这是一个有效的size(不是add)函数,前提是非零节点同时存在:left:right

标签: clojure size binary-search-tree


【解决方案1】:

这里有几个问题。您仍在以“标准”方式调用函数。 size(:left bst) 会引发异常,您需要 (size (:left bst)) (括号很重要,函数名称后还有空格)。

第二件事——当你有一个案例和:else时,不需要使用cond。只需使用 if:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    相关资源
    最近更新 更多