Sha256: 301463f1572190f20c32f53e60dd109a863463c92e52db006efa2dea7ac4803b

Contents?: true

Size: 561 Bytes

Versions: 396

Compression:

Stored size: 561 Bytes

Contents

(ns binary-search-tree)

(defn value [node] (first node))
(defn left [node] (second node))
(defn right [node] (last node))
(defn singleton [n] [n nil nil])

(defn insert [v node]
  (if
    (empty? node)
    (singleton v)
    (let [x (value node)]
      (if
        (>= x v)
        [x (insert v (left node)) (right node)]
        [x (left node) (insert v (right node))]))))

(defn from-list [xs]
  (reduce #(insert %2 %1) nil xs))

(defn to-list [node]
  (if
    (empty? node)
    node
    (concat (to-list (left node)) [(value node)] (to-list (right node)))))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.179 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.178 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.177 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.176 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.175 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.174 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.173 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.172 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.171 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.170 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.169 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.167 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.166 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.165 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.164 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.163 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.162 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.161 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.160 tracks/clojure/exercises/binary-search-tree/src/example.clj