在下面的Alex Taggart的评论后编辑。简易树遍历和快速随机节点访问
我使用一个拉链来轻松遍历和编辑一棵可以长到数千个节点的树。首次创建时,每个节点都不完整。数据将随机增加/删除,叶节点将被分支替换等。
该树可以是非常不平衡。 对节点的快速随机访问也很重要。
一个实现是使用拉链遍历树并创建按键索引的节点的哈希表。不用说上述的将是非常低效的,因为:每个节点的
- 2份需要创建
- 任何改变需要将2层的数据结构(树和HashMap)之间被一致地镜像。
简而言之,是否有一种时间/空间高效的方式来将遍历/更新的简便性与拉链结合起来,以及在clojure中快速访问哈希表?
拉链不是数据结构,它是遍历和修改数据结构的一种方式。鉴于此,你的问题不太合理。另外,“高效”还没有很好的定义。 – 2011-12-25 22:18:38
“高效”,因为没有同一个东西的多个副本吃掉内存,并且不必为每个编辑更新2个数据结构。 – kliron 2011-12-25 22:41:23