我正在读这个http://lampwww.epfl.ch/papers/idealhashtrees.pdf,在第5页到第6页的末尾,他谈到了一个包含32个免费表链表的数组。
在算法中,当您向表中添加节点时,您将调整大小1然后追加它。
我不明白拥有此免费表链表的好处。预先分配它们并在运行中分配它们之间有什么区别?如果你预分配那么你就是在浪费内存,所以HAMT的主要好处就会被打败,而且你也会快速耗尽预先分配的表来使用,所以从一开始就是浪费。
我根本不理解论文的那一部分。无论哪种方式你都在分配这些数组,那么这个更复杂的版本如何比简单地按需重新分配更好?如果它对内存优化产生任何影响,我会在C#中对此进行编码。