我找到了很多关于b-tree的文章,但没有一篇对我有帮助。
我想在磁盘上存储一棵B树,但我不想序列化树对象,我认为有一种方法可以只按某种顺序保存树的值,这样在我可以再次恢复树之后。
我尝试以一些顺序来存储值,比如Pre-order、In-order (对称)、Post-order,但是当再次插入值时,树会发生变化。
下面的图像是我想要存储的b-tree的一个示例。

图片来自http://slady.net/java/bt/view.php,B树动画小程序。
那么,有一种方法可以保存树的结构及其值吗?
发布于 2014-10-23 23:26:32
你说得对,B-tree并不是作为一个整体来序列化的。它们作为内存中的数据结构还可以,但作为内存可能不同的磁盘上数据结构最有用(可能一次只能在内存中保存一个节点)。
有关使用磁盘上的B树和缓存在内存中的节点子集的Java代码示例,请参阅JDBM源代码,可以从https://github.com/jankotek/JDBM3/blob/master/src/main/java/org/apache/jdbm/BTreeNode.java#L831开始。
https://stackoverflow.com/questions/26528499
复制相似问题