There are many ways one could model a tree/graph:

;; collection of edges
[[:a :b] [:b :c] [:b :d] [:c :e] [:d :e]]

;; adjacency list
{:a [:b] :b [:c :d] :c [:e] :d [:e]}

If you're looking for a pre-made solution, the loom graph library 
(https://github.com/jkk/loom) may work:

(ns example
  (:use [loom.graph :only [digraph]]
        [loom.alg :only [shortest-path]]))

(def dg (digraph {:a [:b] :b [:c :d] :c [:e] :d [:e]}))

(shortest-path dg :a :e)
; => (:a :b :c :e)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to