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.119 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.118 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.117 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.116 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.115 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.114 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.113 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.111 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.110 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.109 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.108 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.107 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.106 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.105 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.104 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.103 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.102 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.101 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.100 tracks/clojure/exercises/binary-search-tree/src/example.clj
trackler-2.2.1.99 tracks/clojure/exercises/binary-search-tree/src/example.clj