考虑在Clojure代码中的以下树形结构:
(def tree [7 9 [7 5 3 [4 6 9] 9 3] 1 [2 7 9 9]])
例如,在树中,所有偶数的路径将是:
[[2 3 0] [2 3 1] [4 0]]
这是一个列表的列表。每个“内部”列表表示从树的根到感兴趣的叶子的绝对路径。
我现在正在寻找一种数据结构来表示这样的结果,而不会出现冗余。正如您所看到的,例如[2 3]的片段在两个条目中重复出现。我想到了一个嵌套的哈希映射,但也许有更简单的方法:
{2 {3 {0 true 1 true}
4 {0 true}}