Ich versuche, mich mit Clojure vertraut zu machen und habe daher begonnen, einige grundlegende Algorithmen und Datenstrukturen zu implementieren. Ich habe derzeit ein Problem mit der Implementierung eines binären Suchbaums. Hier ist mein Code:
(defstruct bst :left :right :key)
(defn add-bst [n bst-t]
(cond
(nil? bst-t) (struct-map bst :left nil :right nil :key n)
(< n (:key bst-t)) (struct-map bst :left (add-bst n (:left bst-t))
:right (:right bst-t) :key (:key bst-t))
(> n (:key bst-t)) (struct-map bst :left (:left bst-t)
:right (add-bst n (:right bst-t)) :key (:key bst-t))
true bst-t))
Ich habe versucht, eine Zufallszahl in BST
in der REPL, Zeile so:
(exercise.new-ns/add-bst 5 nil)
Aber ich bekomme eine NullPointerException
aber ich verstehe nicht, warum ich diese Ausnahme erhalte. Ist mit meinem Code etwas nicht in Ordnung?