【发布时间】:2011-06-19 03:08:42
【问题描述】:
在我正在开发的一个程序中,我开发了一个大型“线程树”(每个节点最多 k 个子节点),其中每个线程对从其父节点继承的哈希表进行一些修改。有没有办法实现一个有点“持久”的哈希表(在http://en.wikipedia.org/wiki/Persistent_data_structure 的意义上)?
也就是说,有没有一种方法可以实现一个键值对,它至少具有 O(log n) 的查找、插入和删除功能,并且是完全持久的,但“节省空间”(最坏情况)普通的哈希表?
【问题讨论】:
-
在那篇维基百科文章中至少有 5 种不同的持久性,你在寻找什么样的持久性?
-
完全持久化,刚刚更新了原帖
-
如果我很好地理解了您的问题,如果您希望每个孩子从他的父母那里继承哈希表,您可以在每次创建/添加孩子时制作哈希表的深层副本。
-
@Muggen:每次分娩都需要 O(n) 操作。持久数据结构将其降低到 O(1),代价是查找、插入和删除操作的 O(lg n)。
-
您使用的是 Java 还是 C++?
标签: java c++ data-structures hashtable persistent