-1
我試圖實現對BST二叉搜索樹Clojure中
(defn size
"Return the number of nodes in a BST."
[bst]
(cond (nil? bst) 0
:else (+ 1 (+ size(:left bst) size(:right bst))))
)
這看起來正確的一個附加功能?
我試圖實現對BST二叉搜索樹Clojure中
(defn size
"Return the number of nodes in a BST."
[bst]
(cond (nil? bst) 0
:else (+ 1 (+ size(:left bst) size(:right bst))))
)
這看起來正確的一個附加功能?
的東西夫婦錯在這裏。你還是在「標準」的方式調用函數。 size(:left bst)
將引發異常,則需要(size (:left bst))
(paranthesis周圍是重要的,以及函數的名稱後面有一個空格)。
第二件事 - 無需使用cond
當你有一個案例和:else
。僅在以下情況下使用:
(if (nil? bst)
0
(+ 1 (+ (size (:left bst)) (size (:right bst)))))
這是一個有效的'size'(不是'add')函數,只要':left'和':right'存在非零節點。 – Thumbnail