在下面的Alex Taggart的評論後編輯。簡易樹遍歷和快速隨機節點訪問
我使用一個拉鍊來輕鬆遍歷和編輯一棵可以長到數千個節點的樹。首次創建時,每個節點都不完整。數據將隨機增加/刪除,葉節點將被分支替換等。
該樹可以是非常不平衡。 對節點的快速隨機訪問也很重要。
一個實現是使用拉鍊遍歷樹並創建按鍵索引的節點的哈希表。不用說上述的將是非常低效的,因爲:每個節點的
- 2份需要創建
- 任何改變需要將2層的數據結構(樹和HashMap)之間被一致地鏡像。
簡而言之,是否有一種時間/空間高效的方式來將遍歷/更新的簡便性與拉鍊結合起來,以及在clojure中快速訪問哈希表?
拉鍊不是數據結構,它是遍歷和修改數據結構的一種方式。鑑於此,你的問題不太合理。另外,「高效」還沒有很好的定義。 – 2011-12-25 22:18:38
「高效」,因爲沒有同一個東西的多個副本吃掉內存,並且不必爲每個編輯更新2個數據結構。 – kliron 2011-12-25 22:41:23