我有一棵这样的树:
[:root
[:a [:b [:c [:g]]]]
[:d [:e [:f [:g]]]]]
我怎样才能得到边缘,即:
[[:root :a] [:root :d] [:a :b] [:b :c] [:c :g] [:d :e] [:e :f] [:f :g]]
最佳答案
这是我在检查您的答案之前得出的结论。除非我遗漏了什么,否则似乎更符合习惯。
(defn vec->edges [v-tree]
(->> v-tree
(tree-seq vector? next)
(mapcat (fn [[a & children]]
(map (fn [[b]] [a b]) children)))))
关于graph - 从 Clojure 中表示为向量的树中获取边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63679058/