我最近聽了Rich Hickey's interview on Software Engineering Radio。在採訪中,Rich提到Clojure的收藏被實現爲樹木。我希望以另一種語言實現持久化數據結構,並希望瞭解集合和Clojure的其他持久數據結構如何實現。Clojure套件背後的數據結構是什麼?
在以下情況下,樹在每個點上的外觀如何?
創建一套
{1 2 3}
創建的
{1 2 3}
工會和{4}
創建的
{1 2 3 4}
,我想明白是怎麼區別{1}
生成三組({1 2 3}
,{1 2 3 4}
和{2 3 4}
)共享結構,以及如何處理「刪除」。
我也想知道一個節點可能有的最大分支數量。 Rich在採訪中提到樹木很淺,所以推測分支因子大於2。
分支因子是32. – 2013-04-29 04:32:46
迂腐筆記:我只是在http://www.youtube.com/watch?v=sp2Zv7KFQQ0聽取Rich Hickey _Clojure數據結構2_。不確定在何時何地記錄。集合具有不同的存儲實現。 (默認?)向量是淺層樹。其他集合可能有其他實現。 – 2013-04-29 19:56:13
他們這樣做。具體來說:哈希集,哈希映射和向量每個節點有32個子節點;排序集和排序圖是紅黑樹,每個節點有2個孩子。 – Chouser 2013-05-04 14:39:10