How to print tree elements ending in "ire" in Clojure? -



How to print tree elements ending in "ire" in Clojure? -

i trying print tree elements in pre order (root, left , right) in clojure given tree structure.

below code prints elements in pre order, not able figure out how apply status check string ends "ire".

i tried using filter , when well. can help here please?

(defn preorder [tree] (if (nil? (:root tree)) (str nil) (let [v (:root tree) l (:left tree) r (:right tree)] (str v (str " ") (str l (str " ") (preorder l)) (str " ") (str r (str " ")(preorder r))))))

suggestions:

algorithm: generate sequence of :root values walking tree. utilize sequence library, map or filter, convert strings or filter nodes need be. data: utilize nil values :left , :right instead of :root.

thus:

(defn preorder [tree] (if tree (let [v (:root tree) l (:left tree) r (:right tree)] (cons v (concat (preorder l) (preorder r))))))

for example

(preorder {:root 5, :left {:root 10}}) ;(5 10) (filter even? (preorder {:root 5, :left {:root 10}})) ;(10)

beware run out of stack if tree deep.

clojure tree

Comments

Popular posts from this blog

javascript - THREE.js reposition vertices for RingGeometry -

javascript - I need to update the text of a paragraph by inline edit -

assembly - What is the addressing mode for ld, add, and rjmp instructions? -